Добавлены дополнительные обратные слеши в PHP - PullRequest
5 голосов
/ 24 октября 2008

Мой crappy веб-хостинг сделал некоторые обновления на днях, и некоторые настройки пошли не так, потому что, глядя на вики нашей компании (MediaWiki), каждая цитата экранируется обратной косой чертой. Это касается не только данных, которые публикуются (т.е. статей), но и стандартного текста MediaWiki. например:

Вы перешли по ссылке на страницу, которой еще не существует. Чтобы создать страницу, начните вводить текст в поле ниже (см. Страницу справки для получения дополнительной информации). Если вы оказались здесь по ошибке, просто нажмите кнопку назад \ '\' \ '\' \ 'вашего браузера.

Первым делом я отключил magic_quotes_gpc AND 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  

Есть идеи?

Ответы [ 6 ]

4 голосов
/ 24 октября 2008

Возможно, вы захотите подтвердить, что данные в вашей БД не были повреждены. Если бы вы использовали addlash () для ваших данных, когда, без вашего ведома, были включены magic_quotes, то вы бы удвоили косые черты данных, поступающие в вашу БД.

1 голос
/ 24 октября 2008

Если флаги PHP установлены с php_admin_flag / php_admin_value, вы не можете изменить его из файла .htaccess. Это вызвало у меня некоторую головную боль раньше. Либо отключите его в php.ini, либо отмените магические кавычки во время выполнения: http://talks.php.net/show/php-best-practices/26

1 голос
/ 24 октября 2008

Вам нужно будет заставить их изменить мастер-значение или обработать его самостоятельно. Я не верю, что вы можете установить magic_quotes_gpc() во время выполнения для суперглобалистов. (установка его во время выполнения приведет к удалению таких вещей, как база данных / файлы, но не глобальные переменные)

if (ini_get('magic_quotes_gpc') ) {
  foreach($_GET as $key=>$value) {
    $_GET[$key] = stripslashes($value);
  } 
} // etc...
0 голосов
/ 04 ноября 2008

Я использую полосы () для удаления слешей при отображении.

http://www.php.net/manual/en/function.stripslashes.php

0 голосов
/ 24 октября 2008

Вы пытались связаться с вашим хостом crappy и записать ошибку? Вы, вероятно, не единственный, кого это касается, если вы пользуетесь виртуальным хостингом.

0 голосов
/ 24 октября 2008

Возможно, что-то еще вызывает set_magic_quotes_runtime ().

...