我正在尝试检索一些GET数据并对其进行过滤以确保它包含整数。网址字符串为events.php?id=22&month=2
,但当我尝试获取变量filter_input
由于某种原因返回NULL
时,我无法弄清楚原因。这是我的代码:
if(!isset($pageId)) {
$pageId = filter_input(INPUT_GET, 'id', FITER_VALIDATE_INT) ?: 4;
}
if(!isset($month)) {
$month = filter_input(INPUT_GET, 'month', FITER_VALIDATE_INT) ?: date('n');
var_dump($_SERVER['QUERY_STRING'], filter_input(INPUT_GET, 'month', FITER_VALIDATE_INT));
}
var_dump
返回string(13) "id=22&month=2" NULL
。我也尝试了var_dump($_GET)
并按预期收回了array(2) { ["id"]=> string(2) "22" ["month"]=> string(1) "2" }
。
为什么filter_input
返回NULL
?我从来没有遇到过以这种方式检索GET
数据的问题。
答案 0 :(得分:4)
FITER_VALIDATE_INT
应为FILTER_VALIDATE_INT
。在常量的所有实例中,L
中缺少FILTER
。启用错误报告会导致多个Notice: Use of undefined constant FITER_VALIDATE_INT - assumed 'FITER_VALIDATE_INT'
错误。