Почему, если я перехожу на INPUT_GET, этот код всегда будет выполнять часть кода ‘else’

$num = $_POST['num'];

if(filter_input(INPUT_POST,'num', FILTER_VALIDATE_INT, array("options"=>array("min_range"=>5, "max_range"=>20)))===false) {
echo "Write a valid number between 5 and 20";
} else {
echo 'Great, your number is: '.$num;
}

-4

Решение

Есть много глаголов, которые вы можете использовать для передачи информации между вашим веб-сайтом и вашим приложением, возможно, наиболее часто используемые — это GET и POST, GET-запросы — это те, которые вы видите в URL, обычно они идут после? Символ, POST-запросы с другой стороны не отображаются в URL, но данные отправляются «скрытыми», в этом случае вы можете видеть, что вы используете:

$num = $_POST['num']

если это работает, потому что на вашей странице HTML, или на той же странице PHP, у вас есть что-то вроде

<form action="mypage.php" method="post">

таким образом, вы можете получить эту информацию через _POST, а не _GET, используемый метод / глагол должен совпадать с обеих сторон.

Если вы попытаетесь получить значение в _GET, оно будет недоступно, поэтому фильтр не пройдет проверку http://php.net/filter_input, в нем четко говорится:

или NULL, если переменная variable_name не установлена

вы выполняете === сравнение, которое не вернет false, но в этом случае NULL, и поэтому единственный доступный код, который должен быть выполнен, — это else часть!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]