У меня есть сервер 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 были переопределены.
Так есть ли у кого-нибудь идеи о том, как его можно было включить?