PHP filter_require_array 失败

PHP filter_require_array is failing

我有一个 AJAX 文件,它可以获取一个数组作为 POST 变量。该数组如下所示:

array(
    'NAME' => PRICE,
    'NAME2' => PRICE2
)

例如,这是关于一种可能性的var_dump:(var_dump($_POST['additions']))

array(2) {
    ["vloer"]=>
    string(5) "50.00"
    ["dak"]=>
    string(5) "20.00"
}

要过滤数组,我使用以下行:

$additions = filter_input(INPUT_POST, 'additions', FILTER_REQUIRE_ARRAY);

令我震惊的是,由于某种原因,它 returns 是错误的。我也尝试了 filter_input_array,但没有用。即使没有 FILTER_REQUIRE_ARRAY 它也不起作用。

感谢@bxN5 ():

改变

$additions = filter_input(INPUT_POST, 'additions', FILTER_REQUIRE_ARRAY);

进入

$additions = filter_input(INPUT_POST, 'additions', FILTER_DEFAULT , FILTER_REQUIRE_ARRAY));

完成任务。

如果您要过滤浮点值(价格),我建议您将带有标志 FILTER_FLAG_ALLOW_FRACTION 的值过滤为 FILTER_DEFAULT == FILTER_UNSAFE_RAW,这样您最终可能会在输入中出现不需要的注入。

$additions = filter_input( 
                 INPUT_POST, 
                 'additions', 
                 FILTER_SANITIZE_NUMBER_FLOAT, 
                 FILTER_REQUIRE_ARRAY + FILTER_FLAG_ALLOW_FRACTION
);

为了便于阅读,我将参数分成几行:)