2010-08-25 2 views

ответ

3

gpc в magic_quotes_gpc означает GET, POST, COOKIE. Так что все в $_GET, $_POST и $_COOKIE получили сбежали. Если magic_quotes_gpc включен, вы должны запустить stripslashes для переменных в этих массивах.

Не забудьте запустить mysql_real_escape_string() на переменных в запросах (для подготовленных выступлений за исключением)

magic_quotes устарели, рекомендуется отключить его и избежать переменных с помощью mysql_real_escape_string() (для MySQL). Поместите следующее в файл .htaccess для отключения magic_quotes_gpc:

php_flag magic_quotes_gpc off 
php_flag magic_quotes_runtime off 
0

не «еще», но это единственный случай, когда вам будет нужна эта функция.

В файле конфигурации, который включен во все ваши скрипты. Стриптиз из всех данных GPC.

0

Очень хорошая ptactice make mysql_real_escape_string(); Я советую вам отключить magic_quotes. В PHP 6 магические кавычки будут отключены. Если хостер не предоставил вам доступ, чтобы изменить этот параметр, вы можете использовать следующую функцию:

function stripslashes_deep($value) { 
    $value = is_array($value) ? 
       array_map('stripslashes_deep', $value) : 
       stripslashes($value); 

    return $value; 
} 

if((function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc()) || (ini_get('magic_quotes_sybase') && (strtolower(ini_get('magic_quotes_sybase'))!="off"))){ 
    stripslashes_deep($_GET); 
    stripslashes_deep($_POST); 
    stripslashes_deep($_COOKIE); 
}