2010-08-25 71 views

回答

3

gpc magic_quotes_gpc代表GET,POST,COOKIE。因此,$_GET,$_POST$_COOKIE中的所有内容都已被转义。如果启用了magic_quotes_gpc,则应该在这些数组中的变量上运行反斜杠。

记住要在查询中的变量运行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是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); 
}