Я пытаюсь получить некоторые данные GET и отфильтровать их, чтобы убедиться, что они содержат целое число. Строка URL-адреса 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
данные таким образом.
FITER_VALIDATE_INT
должно быть FILTER_VALIDATE_INT
, Вам не хватает L
в FILTER
во всех случаях постоянной. Включение отчетов об ошибках выкинуло бы несколько Notice: Use of undefined constant FITER_VALIDATE_INT - assumed 'FITER_VALIDATE_INT'
ошибки.
Других решений пока нет …