$register_globals = @ini_get('register_globals');
$magic_quotes_gpc = @get_magic_quotes_gpc();if(!$magic_quotes_gpc) {
exit('Please set magic_quotes_gpc = On in your php.ini.');
}
if(!$register_globals || !$magic_quotes_gpc) {
@extract(daddslashes($HTTP_POST_VARS), EXTR_SKIP);
@extract(daddslashes($HTTP_GET_VARS), EXTR_SKIP);
if(!$register_globals) {
foreach($HTTP_POST_FILES as $key => $val) {
$$key = $val['tmp_name'];
${$key.'_name'} = $val['name'];
${$key.'_size'} = $val['size'];
${$key.'_type'} = $val['type'];
}
}
}function daddslashes($string, $force = 0) {
if(!$GLOBALS['magic_quotes_gpc'] || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
}以上PHP代码,很多函数具体意义不是很明白,谁能解释详细点!谢谢!

解决方案 »

  1.   

    除了daddslashes 这是个自定义函数,其它都是PHP的内置函数,像楼上说的,查查手册就明白了. 
    daddslashes 这个函数,需要2个参数,$force这个参数默认是0,应该没什么用吧...
    然后判断$string这个参数是数组,还是字符串,
    如果是字符串,直接对这个字符串执行 addslashes,
    如果是数组,就用foreach($string as $key => $val)对$string进行遍历,得到数组中的每一个值(这时候这个值就是字符串了),然后对这个值执行 daddslashes, 实际就是 addslashes($string[0]),等等
    这段代码有点眼熟,ZEN CART中好像也有看到过,可能是用来过滤一些全局变量的.
    说得有点乱,希望能帮到你
      

  2.   

    discuz里面的代码吧? 具体就是判断PHP是否自动过滤GET和POST变量中的引号,如果未自动过滤则完成过滤
      

  3.   

    不想把咀嚼好的吐你嘴里, 学会自己查代码 看手册 调试吧.baidu google 也是很好的老师  学会自学 比别人说是什么什么要好的多.
      

  4.   

    你首先得了解,php.ini文件里的register_globals 和 magic_quotes_gpc是做什么用的,配置成on会发生什么情况,配置成off后就由这段代码做相同处理。
      

  5.   

    处理表单提交数据,未启register_globals的时候,把提交的数据注册为全局变量