Можно ли включить "magic_quotes_gpc" в PHP 5.3? - PullRequest
1 голос
/ 09 августа 2011

В PHP 5.3 можно ли включить "magic_quotes_gpc"?

Я понимаю, что в PHP 5.3 он устарел, но устанавливаемый скрипт PHP требует этого, иначе он не будет работать.

Ответы [ 4 ]

3 голосов
/ 09 августа 2011

Это должно быть сделано на уровне .ini. Это не может быть выполнено в скрипте с помощью ini_set (), потому что к моменту обработки ini_set () PHP уже завершил запуск и были установлены различные суперглобальные массивы (POST / GET / REQUEST / etc ...) и НЕ будет изменен.

Вы можете включить настройку для каждого скрипта, используя директиву Apache <Files>, поскольку включение магических кавычек для всех скриптов PHP - ужасная идея:

<Files needs_gpc.php>
   php_value magic_quotes_gpc 1
</Files>
3 голосов
/ 09 августа 2011

Тогда не используйте этот скрипт очень плохо, когда включены магические кавычки.

Эта функция УСТАРЕЛА с PHP 5.3.0. Полагаться на эту функцию крайне не рекомендуется.

DOC

ПОЧЕМУ-НЕ в DOC

2 голосов
/ 09 августа 2011

Вы можете смоделировать 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 можно по-прежнему включать эту устаревшую функцию.

0 голосов
/ 09 августа 2011

Да, может.Функция отключена по умолчанию, но не была удалена.Просто измените свой файл php.ini (или используйте предложение Марка Б, чтобы включить его только для конкретного скрипта)

...