Магические кавычки в PHP

Магические кавычки — эффект автоматической замены кавычки на обратный слэш и кавычку при операциях ввода/вывода в PHP.

Пример: пусть в форму, в поле с именем name пользователь ввел значение A"B, содержащее кавычку. Тогда, если в настройках PHP включены магические кавычки для GET, POST и COOKIE, после отправления формы в переменной $_POST["name"] будет записано A\"B.

Изначально предполагалось, что это облегчит работу начинающих программистов и позволит им избежать ошибок, связанных с безопасностью при работе с базой данных. Однако, предположения не оправдались, магические кавычки только усложнили работу, причем для начинающих они совершенно непонятны.

В PHP несколько видов магических кавычек. Наиболее распространенные:
  • magic_quotes_gpc (GET/POST/COOKIE) - слеши добавляются ко всем переменным $_GET, $_POST, $_COOKIE
  • magic_quotes_runtime - слэши добавляются к содержимому, читаемому из файлов
Изменить настройки магических кавычек можно несколькими способами:
  1. php.ini на сервере (строчка: magic_quotes_gpc = Off)
  2. .htaccess в текущем каталоге (строчка: php_flag magic_quotes_gpc Off)
  3. функция php (например, set_magic_quotes_gpc(0))
Возможность изменить настройки тем или иным способом зависит от настроек php на сервере.
Прочли: 1541 | Изменено: 15 марта 2011 | Добавлено: 10 января 2011 | На главную