使用$_POST
,我可以使用
POST
个变量
foreach($_POST as $key => $value) {
// do something
}
但是,是否有类似的内容可以迭代每个$key
,以便filter_input(INPUT_POST, $key)
提供POST
的变量?
很明显,我可以使用
foreach(array_keys($_POST) as $key) {
if(filter_has_var(INPUT_POST, $key) {
$value = filter_input(INPUT_POST, $key);
// do something
}
}
但这并不总是足够的。例如,如果某些$_POST
密钥未设置,那么找出最初可用的密钥会很有用,因为它们仍然可以通过filter_input
访问。此外,我希望永远不必直接访问任何超级全球。
答案 0 :(得分:0)
我认为存在设计问题,使用FILTER_INPUT与使用SUPERGLOBALS相同。如果要取消设置任何$ _POST变量,则必须在取消设置之前保留该变量的副本。解析$ _POST没有错:
// backup your $_POST (or $_POST keys)
$_post_backup = $_POST;
// remove 'foo'
unset($_POST['foo']);
// itereate
foreach($_post_backup as $key => $value) {
$filtered_value = filter_input(INPUT_POST, $key);
// do something
}
答案 1 :(得分:0)
我刚刚在Paypal IPN的开发者网站上看到了这个:
[A-z]+12345
我测试了它并且它有效。不知道它是否是安全的,但在大多数情况下它不仅仅是好的。 您仍然需要过滤输入,但现在可以使用filter_input_array
来完成