Intereting Posts
Есть ли законное использование для простых строк в PHP? Добавить дочерний элемент в xml на основе атрибута родительского узла в php Как использовать Elastic Search поверх ранее существующей базы данных SQL? Согласование данных из файла с регулярным выражением как использовать dom php parser Apache 2.4 не загружает php5.5 с Mac OS 10.8 Позвольте пользователям создавать свои собственные настраиваемые параметры меню, сохраняя при этом значения по умолчанию для приложений PHP: обновление нескольких полей MySQL в одном запросе Проверьте, существует ли электронная почта в базе данных Заголовки $ _SERVER отсутствуют в PHP, но присутствуют в Python regex (в PHP), чтобы соответствовать &, которые не являются объектами HTML Почему я не могу видеть исходный код с FF, когда у меня есть это утверждение if? Реализация аутентификации Facebook PHP strtotime возвращает дату 1970 года, когда столбец даты равен нулю Функция set_error_handler, не вызывающая автозагрузку

Когда я убираю все входные данные, иногда он оставляет в строке строчки (\) и вставляет их в базу данных. Почему это происходит и как я могу это решить?

Я нашел функцию stripslashes, но я предпочел бы найти, где я добавляю больше слэшей, чем должен. Мои функции используют mysql_real_escape_string один раз для каждой переменной, и я запрашиваю базу данных, используя «insert into foo (bar, bar) values ​​($ baz, $ baz)», возможно, это проблема.

phpinfo дает

magic_quotes_gpc On On magic_quotes_runtime Off Off magic_quotes_sybase Off Off 

 static function insert($replyto,$memberid,$postid,$comment) { $message=array(); $lenmax=1000; $lenmin=5; $toolong="comment is too long."; $tooshort="comment is too short."; $notarget="replied comment is deleted"; $nomember="you are not a member"; $notpost="commented post is deleted"; switch(true) { case strlen($comment)<$lenmin: $message[]= $tooshort; break; case strlen($comment)>$lenmax: $message[]=$toolong; break; case $replyto!=NULL && !commentexists($replyto): $message[]=$notarget; break; case !memberexists($memberid): $message[]=$nomember; break; case !postexists($postid): $message[]=$nopost; break; case count($message)>0:return $message; break; } $replyto=mysql_real_escape_string($replyto); $memberid=mysql_real_escape_string($memberid); $postid=mysql_real_escape_string($postid); $comment=mysql_real_escape_string($comment); if($replyto==NULL) mysql_query("insert into fe_comment(memberid,postid,comment) values($memberid,$postid,'$comment')"); else mysql_query("insert into fe_comment(replyto,memberid,postid,comment) values($replyto,$memberid,$postid,'$comment')"); } 

моя хостинговая фирма имеет magic_quotes_gpc, и у меня нет доступа к файлу php.ini. Я использую панель plesk для настройки.

Документация php

Пример использования stripslashes () – это когда включена директива PHP magic_quotes_gpc (она включена по умолчанию), и вы не вставляете эти данные в место (такое как база данных), которое требует экранирования. Например, если вы просто выводите данные прямо из HTML-формы.

Мои запросы вставки вставляются с косой чертой в базе данных, а моя версия php – 5.2.3

документация также говорит

Если magic_quotes_gpc включен, сначала примените stripslashes () к данным. Использование этой функции для данных, которые уже были экранированы, приведет к двойному удалению данных.

Поэтому я проверяю, если я дважды избегаю значений, я не могу найти нигде, я дважды избегал значений. теперь я использую

 $comment=mysql_real_escape_string(stripslashes($comment)); 

но я думаю, что это не должно стать стандартом в моих кодах, потому что это не похоже на «правильный путь», хотя это экономит день.

magic_quotes_gpc автоматически ускользает от всех, а также не является надежным, потому что он устарел.

поэтому я создал файл .htaccess и скопировал его во все каталоги. У меня есть файл index.php, файлы .htaccess имеют только этот текст

 php_flag magic_quotes_gpc Off 

Я запускал phpinfo, и он все еще дает

 magic_quotes_gpc On On magic_quotes_runtime Off Off magic_quotes_sybase Off Off 

теперь мне нужен способ отключить магические кавычки gpc, и у меня нет доступа к файлу php.ini. Я ищу способы редактировать файлы .htaccess.