Директиву magic_quotes_gpc можно отключить только на системном уровне и нельзя во время выполениня. В других случаях, использование ini_set() не дает эффекта.
Пример #1 Отключение волшебных кавычек на сервере
Пример, где показана установка значения Off в php.ini для этих директив. Для дополнительной информации читайте раздел руководства под названием Как изменять параметры конфигурации.
; Волшебные кавычки ; ; Волшебные кавычки для входных данных GET/POST/Cookie. magic_quotes_gpc = Off ; Волшебные кавычки для данных, поступающих во время выполнения (например, данные из SQL, из exec() и т.д). magic_quotes_runtime = Off ; Использование волшебных кавычек в стиле Sybase (экранирование ' путем '' вместо \'). magic_quotes_sybase = Off
Если доступ к конфигурации на сервере невозможен, используйте .htaccess в качестве альтернативы. Например:
php_flag magic_quotes_gpc Off
В целях написания переносимого кода (код, который будет работать на любой платформе), и в случае невозможности изменения конфигурации на сервере, показан пример отключения magic_quotes_gpc в скрипте. Этот метод неэффективен, так как предпочтительно устанавливать соответствующие директивы в другом месте.
Пример #2 Отключение волшебных кавычек в скрипте
<?php
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}
?>