Проверка, если форма была отправлена-PHP
каков наилучший способ проверить, была ли отправлена форма, чтобы определить,следует ли передавать переменные формы в мой класс проверки?
сначала я подумал, что:
isset($_POST)
но это всегда будет возвращать true, поскольку суперглобальный определяется везде. Я не хочу повторять каждый элемент моей формы с помощью:
if(isset($_POST['element1']) || isset($_POST['element2']) || isset(...etc
при написании этого вопроса я подумал о гораздо более простом решении, добавьте скрытое поле для действия как флаг, который я могу проверить.
есть ли "более чистый" способ сделать это, чем добавить свой собственный флаг?
8 ответов:
для общей проверки, если был
POST
использовать действий:if (!empty($_POST))
EDIT: как указано в комментариях, этот метод не будет работать в некоторых случаях (например, с флажками и кнопкой без имени). Вы действительно должны использовать:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
на самом деле, кнопка "отправить" уже выполняет эту функцию.
попробуйте в форме:
<form method="post"> <input type="submit" name="treasure" value="go!"> </form>
затем в обработчике PHP:
if (isset($_POST['treasure'])){ echo "treasure will be set if the form has been submitted (to TRUE, I believe)"; }
попробуй такое
<form action="" method="POST" id="formaddtask"> Add Task: <input type="text"name="newtaskname" /> <input type="submit" value="Submit"/> </form> //Check if the form is submitted if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['newtaskname'])){ }