magic_quotes на php 5.3 не исчезнет - PullRequest
1 голос
/ 06 марта 2012

У меня есть сервер Ubuntu 10.04, работающий на PHP 5.3.2, и у меня есть следующие строки в моем файле php.ini:

magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off

НЕТ других файлов php.ini (я искал весь жесткий диск), я проверил ВСЕ файлы конфигурации apache2 (включая ВСЕ файлы .htaccess на всем жестком диске), и на них нет ссылок в любом месте остальное.

Тем не менее:

<?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    var_dump(get_magic_quotes_gpc());
?>

Создает этот вывод: int(1) То есть включены магические кавычки, что легко проверить, добавив любой тип запроса с кавычками, и они будут заключены в кавычки. Я исправил это, добавив в свой корневой файл .htaccess следующее:

php_flag magic_quotes_gpc Off

Вышеупомянутый код теперь дает желаемый результат: int(0), а выходные данные не заключаются в кавычки.

Итак, вопрос: Почему, о Боже, почему, во-первых, были включены магические цитаты?! Да, я знаю, этот вопрос похож на другие , которые были спросил. Я не ищу "быстрое исправление", и да, Я знаю, магические кавычки будут удалены в php 5.4 . Но правда в том, что мне нужно будет поддерживать обратную совместимость в течение нескольких лет после выхода версии 5.4 (для разных клиентов и т. Д.), И поэтому я пытаюсь выяснить, почему были включены магические кавычки. Я знаю, что могу это исправить, добавив строку в мой корневой файл .htaccess (как я показал), но я бы предпочел лучше понять, как мои настройки php.ini были переопределены.

Так есть ли у кого-нибудь идеи о том, как его можно было включить?

Ответы [ 4 ]

1 голос
/ 08 марта 2012

У меня была такая же проблема сегодня, и я нашел этот вопрос, но никакого очевидного решения!

Я наконец решил проблему, также применив строку magic_quotes_gpc = Off в последнем файле в папке /etc/php5/apache2/conf.d,кажется, что-то переопределяет исходный файл php.ini, но применение настройки еще раз в последнем включенном файле фактически снова отключило magic_quotes.

1 голос
/ 16 марта 2012

Я наконец понял это;обновить apache2 и php5:

apt-get update
apt-get install apache2 php5

Это ошибка с определенными версиями в apache2 и / или php5.Версия в apt-юниверсе Debian была обновлена, поэтому только обновление решит проблему.

0 голосов
/ 05 сентября 2013

Это сработало для меня:

Я изменил:

; Magic quotes
;


; Use Sybase-style magic quotes (escape ' with '' instead of \').
  magic_quotes_sybase = 0
  magic_quotes_gpc = 0
  magic_quotes_runtime = 0

на:

; Magic quotes
;


; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = 0
magic_quotes_gpc = 0
magic_quotes_runtime = 0

Были пробелы перед настройками и потрачены часы поиска временикаждый экземпляр magic_quotes и каждый файл php.ini или любой файл .ini вообще.

(я делал это в своем каталоге .drush в drush.ini, но, вероятно, он будет работать в php.ini)

0 голосов
/ 06 марта 2012

В верхней части вывода PHPinfo() показывает фактический используемый файл php.ini.

НЕТ других файлов php.ini (я искал весь жесткий диск), я проверил ВСЕ файлы конфигурации apache2 (включая ВСЕ файлы .htaccess на всем жестком диске), и на них нет ссылокгде-нибудь еще.

Магии тоже нет.
Если она установлена ​​- она ​​где-то установлена.

...