Добавлены дополнительные обратные слеши в PHP
Вопрос
Мой crappy веб-хостинг сделал некоторые обновления на днях, и некоторые настройки изменились, потому что, глядя на вики нашей компании (MediaWiki), каждая цитата экранируется обратной косой чертой. Это касается не только данных, которые публикуются (т.е. статей), но и стандартного текста MediaWiki. например:
Вы перешли по ссылке на страницу, которой еще не существует. Чтобы создать страницу, начните вводить текст в поле ниже (см. Страницу справки для получения дополнительной информации). Если вы оказались здесь по ошибке, просто нажмите кнопку назад \ '\' \ '\' \ 'вашего браузера. Р>
Первым делом я отключил magic_quotes_gpc
И magic_quotes_runtime
, используя файл .htaccess
, но это все еще происходит. Мой php_info ()
сообщает об этом:
Setting Local Value Master Value
magic_quotes_gpc Off On
magic_quotes_runtime Off On
magic_quotes_sybase Off Off
Есть идеи?
Решение
Если флаги PHP установлены с помощью php_admin_flag
/ php_admin_value
, вы не можете изменить его из файла .htaccess
. Это вызвало у меня некоторую головную боль раньше. Отключите его в php.ini
или отмените магические кавычки во время выполнения:
http://talks.php.net/show/php-best-practices/ 26 р>
Другие советы
Вы можете подтвердить, что данные в вашей БД не были повреждены. Если бы вы использовали addlash () для ваших данных, когда, без вашего ведома, были включены magic_quotes, то вы бы удвоили косые черты данных, попадающих в вашу БД.
Вам нужно будет заставить их изменить мастер-значение или обработать его самостоятельно. Я не верю, что вы можете установить magic_quotes_gpc ()
во время выполнения для суперглобальных объектов. (установка его во время выполнения приведет к удалению таких вещей, как база данных / файлы, но не глобальные переменные)
if (ini_get('magic_quotes_gpc') ) {
foreach( Вам нужно будет заставить их изменить мастер-значение или обработать его самостоятельно. Я не верю, что вы можете установить magic_quotes_gpc ()
во время выполнения для суперглобальных объектов. (установка его во время выполнения приведет к удалению таких вещей, как база данных / файлы, но не глобальные переменные)
<*>GET as $key=>$value) {
Вам нужно будет заставить их изменить мастер-значение или обработать его самостоятельно. Я не верю, что вы можете установить magic_quotes_gpc ()
во время выполнения для суперглобальных объектов. (установка его во время выполнения приведет к удалению таких вещей, как база данных / файлы, но не глобальные переменные)
<*>GET[$key] = stripslashes($value);
}
} // etc...
Возможно, что-то еще вызывает set_magic_quotes_runtime ().
Я использую stripslases () для удаления слешей при отображении.
Вы пытались связаться со своим хостом crappy и записать ошибку? Вы, вероятно, не единственный, кого это касается, если вы находитесь на виртуальном хостинге.