开发者

Set function for each array

Now I use:

<?php
$_POST = array_map(mysql_real_escape_string, $_POST);
$_GET = array_map(mysql_real_escape_string, $_GET);
$_COOKIE = array_map(mysql_real_escape_string, $_COOKIE);
$_REQUEST = array_map(mysql开发者_如何学Go_real_escape_string, $_REQUEST); 

but if $_POST has multiple arrays ($_POST['s'][1]) then it doesn't work. How can I set function for each array?


<?php

function escape_recursive($item) {
    return is_array($item) ?
        array_map("escape_recursive", $item) :
        mysql_real_escape_string($item);
}

$_POST = array_map("escape_recursive", $_POST);
// etc...

?>

But see DampeS8N's comment -- if you are doing this, you're doing security wrong...


You want to use a recursive function to overcome your problem like so:

function recursive_array_map($input){
   if(is_array($input)){
        return array_map('recursive_array_map',$input);
   }

   return array_map(mysql_real_escape_string, $input);
} 

$_POST = recursive_array_map(mysql_real_escape_string, $_POST);

I just wrote this inhere so not sure if it actually works ;) Have a go at it!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜