|
|
|
| День добрый!
не подскажите, как удалять при вводе в базу "опасных символов" ?
Имеется ввиду: заношу в базу текст в кот содержится ;:/\ % и прочее, выдает ошибку, в чем могет быть загвоздка, какие символы нельзя заносить? может есть какой то список зарезервированных символов?
вот пример текст блока
+[сообщение] Сказать фразу в торговый чат Trade channel. Фразу увидят любые игроки в радиусе нескольких сотен шагов.
#[сообщение] Сказать фразу в чат группы Party channel. Фразу увидят все игроки, входящие в группу игрока, в любом месте.
@[сообщение] Сказать фразу в чат клана Clan channel. Фразу увидят все игроки, входящие в клан игрока, в любом месте.
$[сообщение] Сказать фразу в чат альянса Alliance channel. Фразу увидят все игроки, входящие в альянс с кланом игрока, в любом месте.
"[персонаж] [сообщение] Сказать фразу указанному персонажу в приватный чат Whisper channel. Фразу увидит только указанный игрок в любом месте.
Друзья\игнор
/friendlist Выводит в чат список "друзей". Здесь указывается статус персонажей - в игре (Online) или вне игры (Offline).
/friendinvite [персонаж] Посылает указанному персонажу приглашение стать "другом". Если персонаж ответит утвердительно, то он появится в списке "друзей".
/frienddel [персонаж] Удаляет указанного персонажа из списка "друзей". | |
|
|
|
|
|
|
|
для: sway
(28.02.2007 в 13:33)
| | Если Вы скриптом заносите данные, то при внесении данных следует обработать их функцией
htmlspecialchars(); | |
|
|
|
|
|
|
|
для: dert
(28.02.2007 в 13:46)
| | да но я заношу текст, вместе с html кодом, так што думаю этот метод не применим | |
|
|
|
|
|
|
|
для: dert
(28.02.2007 в 13:46)
| | не надо нести бред. | |
|
|
|
|
|
|
|
для: sway
(28.02.2007 в 13:33)
| | смотрите функцию mysql_escape_string()
Символы в БД можно хранить любые - вплоть до хранения двоичных файлов. | |
|
|
|
|
|
|
|
для: Trianon
(28.02.2007 в 14:30)
| | што значит бред?? при занесении в базу значка # запрос проваливался, при обработке этого знака вышеприведенной функией htmlspecialchars() запрос все равно проваливался!!
Но я проблему решил, хоть и без вашей помощи. | |
|
|
|
|
|
|
|
для: sway
(02.03.2007 в 09:18)
| | htmlspecialchars() - функция для построения кодовых эквивалентов для тех символов текста, которые в языке HTML требуют принудительного кодирования. Ни этот язык, ни сама функция не имеют отношнения к синтаксису построения текстовых литералов, применяемых в языке SQL. Последнюю задачу выполняют функции mysql_escape_string() , mysql_escape_real_string() и всё. Ну еще - с некоторой натяжкой - addslashes(). (последняя - при включенном режиме magic quotes - самим php-движком без разбора натравливается на все входящие параметры скрипта в совершенно неподходящий момент, поэтому вреда от нее больше, чем пользы)
Когда функцию формирования лексем одного языка применяют для языка абсолютно другого, я называю это бредом. Но это была реплика не в Ваш адрес.
А теперь давайте конкретно.
Каким запросом Вы заносили значок # в базу? | |
|
|
|
|
|
|
|
для: Trianon
(02.03.2007 в 10:11)
| | Мда,в этом он прав...Нет,при желании можно конечно убить кавычки через htmlspecialchars(,ENT_QUOTES),но это извращение,так как при этом искажаются < > #,то же самое делать через addslashes или mysql_escape_string. Для автора темы:как я понимаю,на первом месте стоит символ ',символ % тоже может принести проблему в сочетании с одной '. | |
|
|
|
|
|
|
|
для: Ralph
(02.03.2007 в 12:01)
| | Сходил почитал мануал,исходя из фразы "...Примечание: mysql_real_escape_ string() не мнемонизирует % и _...",можно предположить,что символ _ в сочетании с чем то тоже может вызывать вопросы...Символ $ мнемонизировать не надо,но при некорректном использовании непонятку тоже вызвать может | |
|
|
|
|
|
|
|
для: Ralph
(02.03.2007 в 12:24)
| | Вы пытаетесь в общую кучу добавить проблему формирования масок для разного рода поиска (LIKE, RLIKE, и пр. ) Каждый вариант поиска - это отдельный язык, и разбираться с ним нужно отдельно. А к заявленной автором задаче эта проблема вообще никак не относится. | |
|
|
|
|
|
|
|
для: Trianon
(02.03.2007 в 13:16)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Ralph
(02.03.2007 в 15:16)
| | "Без лишних постов" на поставленный вопрос коротко и ясно не ответить, потому что сам вопрос сформулирован с ложным предположением - см. тему ветви.
Приходится разжевывать , подчас долго и упорно. | |
|
|
|
|
|
|
|
для: sway
(02.03.2007 в 09:18)
| | Можно попробывать так
if (!get_magic_quotes_gpc())
{
$_GET['asd'] = mysql_escape_string($_GET['asd']);
}
|
| |
|
|
|