foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
foreach($$_request as $_key => $_value) {
$_key{0} != '_' && $$_key = daddslashes($_value);
}
}
unset($_request, $_key, $_value);function daddslashes($string, $force = 0) {
!defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
if(!MAGIC_QUOTES_GPC || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
}还有一个问题:
url:a.php?m=12
页面:$m 得到 12
为什么 $m 有值呢?

解决方案 »

  1.   

    这个代码是对提交过来的变量进行过滤的函数,避免一些 sql注入 xxx 攻击...
      

  2.   

    //GPC过滤,自动转义$_GET,$_POST,$_COOKIE中的特殊字符,防止SQL注入攻击 
    $_GET = saddslashes($_GET);
    $_POST = saddslashes($_POST);
      

  3.   

    整个代码是对 COOKIE,POST,GET 传递过来的数据进行过滤转义。以防止sql注入。2.
    不是有 $_key{0} != '_' && $$_key = daddslashes($_value); 这一句吗? 
      

  4.   

    使用递归,判断变量是不是数组,是的话调用本身,
    不是的话,对字符串进行转义,防止sql注入其实就是对提交的所有数据进行转义
      

  5.   

    这个功能应该是类似于 将 POST, GET COOKIE的值 进行全局变量化。即  $_GET['mm'] = 5;就可以在程序使用变量 $mm 
      

  6.   


    因为有
    unset($_request, $_key, $_value);
      

  7.   

    太感谢你们啦!
    我刚做php,不是很懂,后面恶补下。