sql的注入与转义
addslashes函数 可以对某个变量转义。但是,$_POST 是一个数组,可能有多个单元。
有什么办法可以对数组的每一单元进行转义?
#魔术引号#
方法一:
0. 先判断魔术引号是否开启
if(get_magic_quotes_gpc ()){ echo '魔术引号开了'; } else { echo '魔术引号没开,需要自己转义'; }
1. ini_set('magic_quotes_gpc','on');
方法二:
0. php.ini 中 magic_quotes_gpc = on
1. 重启阿帕奇
#递归转义#
1 function abc(&$v,$k){ 2 $v = addslashes($v); 3 } 4 array_walk_recursive($_GET,'abc');
合理的判断及转义
1 if(!get_magic_quotes_gpc ()){ 2 function _addslashes(&$v,$k){ 3 $v = addslashes($v); 4 } 5 array_walk_recursive(&$_GET,'_addslashes'); 6 array_walk_recursive(&$_POST,'_addslashes'); 7 array_walk_recursive(&$_COOKIE,'_addslashes'); 8 }