filter_input_array()函数中的INPUT_POST参数,例如:
请确认,一定要放置。
filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
看起来会覆盖应用于超级全局变量 $_POST 的任何修改。
测试:
<?php
// 1.
$_POST['abc'] = '123';
var_dump($_POST);
// 2.
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
var_dump($_POST);
?>
输出:
在 // 2. 后,您的 $_POST 将为空(因为初始 POST 是空的)
index.php:4:
array (size=1)
'abc' => string '123' (length=3)
index.php:8:null
请确认,一定要放置。
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING, true);
在您的脚本顶部!
问题:是否有其他人注意到这种行为 - 还是我推理出了错误?
可能的答案:数据来自超全局变量$_REQUEST,而不是$_POST
INPUT_POST
的页面是这个常量列表,它只是链接到描述$_POST
的页面,所以这对我来说意味着有联系。 - IMSoP