在我本地上运行完全正常。
但是传到空间里面去,就不行了,单引号就存入不了了<?/* 过滤所有GET过来变量 */ 
foreach ($_GET as $get_key=>$get_var) 

if (is_numeric($get_var)) 
if (is_numeric($get_var)) { 
$get[strtolower($get_key)] = get_int($get_var); 
} else { 
$get[strtolower($get_key)] = get_str($get_var); 

} /* 过滤所有POST过来的变量 */ 
foreach ($_POST as $post_key=>$post_var) 

if (is_numeric($post_var)) { 
 $post[strtolower($post_key)] = get_int($post_var); 
} else { 
 $post[strtolower($post_key)] = get_str($post_var); 

} /* 过滤函数 */ 
//整型过滤函数 
function get_int($number) 

return intval($number); 

//字符串型过滤函数 
function get_str($string) 

if (!get_magic_quotes_gpc()) { 
return addslashes($string); 
}else{ 
return $string;
}
}
?>

解决方案 »

  1.   

    我刚刚测试,在主贴中的代码中的/* 过滤所有POST过来的变量 */ 
    foreach ($_POST as $post_key=>$post_var) 

    if (is_numeric($post_var)) { 
     $post[strtolower($post_key)] = get_int($post_var); 
    } else { 
     $post[strtolower($post_key)] = get_str($post_var); 


    加一个echo ,/* 过滤所有POST过来的变量 */ 
    foreach ($_POST as $post_key=>$post_var) 

    if (is_numeric($post_var)) { 
     $post[strtolower($post_key)] = get_int($post_var); 
    } else { 
    echo $post[strtolower($post_key)] = get_str($post_var); 

    } 和在执行这个代码后的$_POST['xxx']前面加echo两个地方,前者有"\",后者怎么没"\"呢????????????
      

  2.   

    呵呵,我自己解决了
    哈哈
    我加了个这个代码!$_POST=$post;
    $_GET=$get;原来我本地不是这个东西起的作用,而是我本地开启了get_magic_quotes_gpc()
      

  3.   

    php版本?
    ----------------------------------
    PHP 5.3.x 中弃用的功能
    PHP 5.3.0 新增了两个错误等级: E_DEPRECATED 和 E_USER_DEPRECATED. 错误等级 E_DEPRECATED 被用来说明一个函数或者功能已经被弃用. E_USER_DEPRECATED 等级目的在于表明用户代码中的弃用功能, 类似于 E_USER_ERROR 和 E_USER_WARNING 等级. 下面是被弃用的 INI 指令列表. 使用下面任何指令都将导致 E_DEPRECATED 错误. define_syslog_variables 
    register_globals 
    register_long_arrays 
    safe_mode 
    magic_quotes_gpc 
    magic_quotes_runtime 
    magic_quotes_sybase 
    弃用 INI 文件中以 '#' 开头的注释.