Должен ли я всегда использовать полоски для переменных _POST _GET и _COOKIE - PullRequest
1 голос
/ 01 марта 2012

Я очень запутался, когда прочитал о функции get_magic_quotes_gpc() в PHP.

Везде говорится, что функция устарела ( пример ).

Но каково поведение по умолчанию в PHP 5.3? Раньше я проверял, включен ли magic_quotes_gpc, и удалял все слэши, если это так, в самом начале моего скрипта для всех переменных POST, GET и COOKIE, чтобы я не запутался.

Но если я не буду проверять наличие добавленных слешей с помощью get_magic_quotes_gpc(), то удаление слешей всегда приведет к неверным данным, если в PHP 5.3 не будет добавлено слешей.

У меня такая же путаница с этим

В данный момент magic_quotes_gpc включено на моем сервере (PHP 5.2.17), поэтому мне нужно удалить косую черту. Но как мне справиться с этим, чтобы подготовиться к будущим версиям PHP?

Могу ли я как-то установить значения по умолчанию в будущем во время выполнения в начале моего скрипта? Но каковы значения по умолчанию?

1 Ответ

7 голосов
/ 01 марта 2012

Функция get_magic_quotes_gpc не устарела, это устаревший параметр конфигурации magic_quotes_gpc.

Решение состоит в том, чтобы не использовать параметр конфигурации magic_quotes_gpc на вашем собственном сервере, но также использовать get_magic_quotes_gpc, если вы хотите написать надежный код, который будет работать на серверах, на которых включен устаревший параметр magic_quotes_gpc.

Другими словами:

  • Отключить magic_quotes_gpcв вашей конфигурации.
  • Везде, где вы в настоящее время используете stripslashes, измените его на вызов stripslashes, только если get_magic_quotes_gpc() == 1.
...