Почему htmlspecialchars добавляет косую черту на мою веб-страницу?

Я помещаю свой ввод в mySQL через подготовленный оператор PDO и помещаю его на свой веб-сайт с PHP, используя htmlspecialchars() для защиты от XSS. Единственная проблема заключается в том, что теперь я получаю косые черты перед любыми кавычками, которые видны пользователю на веб-странице, это происходит только тогда, когда я загружаю его на сервер. Никогда не бывает на моем локальном хосте.

Почему это происходит?


person JoeCortopassi    schedule 12.06.2010    source источник


Ответы (1)


На сервере включены магические кавычки?

Попробуйте эту строку в PHP, чтобы узнать:

if(get_magic_quotes_gpc())
    echo "Magic quotes are enabled";
else
    echo "Magic quotes are disabled";

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

person Dan McGrath    schedule 12.06.2010
comment
Проверено, магические кавычки отключены - person JoeCortopassi; 13.06.2010
comment
Вы уверены, что это htmlspecialchars? Вы проверили вывод до (или без) этого вызова функции? Это может быть вызвано некоторым экранированием SQL - person Dan McGrath; 13.06.2010
comment
Не используйте экранирование SQL. Все помещается в базу данных через PDO, поэтому мне не нужно - person JoeCortopassi; 13.06.2010
comment
Черт, ты прав. Проверил мою базу данных, и она там с косой чертой. Как, черт возьми, это произошло :-/ - person JoeCortopassi; 13.06.2010
comment
Вау, спасибо за этот пост. Ты положил конец моим часам таскания за волосы. Неудивительно, что они отказались от этой ужасной функции. php.net/manual/en/security.magicquotes.whynot.php - person Praesagus; 26.09.2013