Можно ли включить "magic_quotes_gpc" в PHP 5.3?
В PHP 5.3 можно ли включить "magic_quotes_gpc"?
Я понимаю, что это устарело в PHP 5.3, но устанавливаемый мной PHP-скрипт требует этого, иначе он не будет работать.
4 ответа
Это должно быть сделано на уровне.ini. Это нельзя сделать в скрипте с помощью ini_set(), потому что к моменту обработки ini_set () PHP уже завершил запуск и были установлены различные суперглобальные массивы (POST/GET/REQUEST/etc...). и не будет изменен.
Вы можете включить настройку для каждого скрипта, используя Apache <Files>
директива, поскольку включение магических кавычек для всех сценариев PHP - ужасная идея:
<Files needs_gpc.php>
php_value magic_quotes_gpc 1
</Files>
Тогда не используйте этот скрипт, это очень плохо, когда включены магические кавычки.
Эта функция УСТАРЕЛА с версии PHP 5.3.0. Полагаться на эту функцию крайне не рекомендуется.
Вы можете смоделировать magic_quotes с помощью короткого сценария, например:
$_GET = array_map("addslashes", $_GET);
$_POST = ...
Обратите внимание, что вам нужен рекурсивный вариант на самом деле. И пока вы на это, вы могли бы по крайней мере использовать _real_escape_string
скорее, чем addslashes
(что на самом деле допустимо, только если ваша база данных и соединение используют только ASCII).
Чтобы включить это для всех сценариев, используйте параметр php.ini:
auto_prepend_file = .../fake_magic_quotes.php
По крайней мере, в PHP 5.3 можно по-прежнему включать эту устаревшую функцию.
Да, оно может. Функция отключена по умолчанию, но не была удалена. Просто измените свой файл php.ini (или используйте предложение Марка Б, чтобы включить его только для конкретного скрипта)