检查php中的输入数组值

时间:2018-06-14 16:30:50

标签: php input

我在POST和GET中检查php中的所有输入,并且我在我的应用程序之前将其转换为html实体。

问题是,当我有多个相同名称的输入时(例如,多个复选框)。我的输入检查器使数组无效。

我想检查POST和GET数组,我想检查其中所有同名的多个输入(即数组)。

有人可以向我推荐一段代码吗?

 // Input validation
 $_GET = array_map("input_check",$_GET);
 $_POST = array_map("input_check",$_POST);

 // Check input strings
 function input_check($arr)
 {

     return htmlentities($arr,ENT_QUOTES,'UTF-8'); 

 }

1 个答案:

答案 0 :(得分:1)

递归!欢迎来到欢迎来到递归的世界!

array_map()将导致您丢失密钥,因此让函数处理所有内容。

您需要检查和说明数组:

// Input validation
$_GET = input_check($_GET);
$_POST = input_check($_POST);

// Check input strings
function input_check($arr)
{
    if(is_array($arr))
    {
        // Since this value is an array we need to apply this
        // function to each element inside the array and maintain
        // the original keys
        foreach($arr as $k=>$v)
        {
            $arr[$k] = input_check($v);
        }
    }
    elseif(is_string($arr))
    {
        $arr = htmlentities($arr,ENT_QUOTES,'UTF-8');
    }
    return $arr;
}