Используя PHP7 .x, у меня есть простая форма
<form method='post' action=''>
<input type='text' name ='yourname'>
<input type='submit' name = 'submitted' value = 'here'>
</form>
Кнопка отправки работает нормально. Глядя на POST с инструментами разработчика, я вижу значения представленных полей ввода. Таким образом, параметры POST в окне инструментов разработчика показывают введенное значение.
Но если моя страница обработки (страница 'действия') содержит этот код
echo $_POST['yourname'];
Вывод равен нулю. Этот оператор echo $_REQUEST['yourname']
показывает введенное значение.
Почему $_POST['yourname']
не показывает значение?
И я очищаю все данные формы с помощью этой команды
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
Я могу изменить свой код для использования $_REQUEST['yourname']
, но почему $_POST['yourname']
не показывает данные? И будут ли мои filter_input_array()
'чистить' результирующие $_REQUEST
значения?
Добавлены Внесены исправления в код (я поместил «действие» в неправильном утверждении в моем примере код; код не был фактически использован. Фактический код содержал параметр 'action' в правильном расположении. Пример кода был обобщенным c образцом, как я видел эту проблему во многих областях кода, использующих «формы».
Но не понимаю «закрыть». Это область программирования (на мой взгляд), и это вопрос программирования: «Почему POST не заполняет массив $ _POST при отправке».
И на второй вопрос «Очистит ли filter_input_array переменные, помещенные в $ _REQUEST?», Ответа не было. (Может быть, это должен был быть отдельный вопрос.)
Но разочарован и неясен, так как почему этот вопрос не подходит для этого стека (и да, я прочитал «правила».)