Проверка формы отправки - PHP
Каков наилучший способ проверить, была ли отправлена форма для определения того, следует ли передавать переменные формы в мой класс проверки?
Сначала я подумал, может быть:
isset($_POST)
Но это всегда будет возвращать true, поскольку суперглобал определяется везде. Я не хочу, чтобы проходить через каждый элемент моей формы с помощью:
if(isset($_POST['element1']) || isset($_POST['element2']) || isset(...etc
Во время написания этого вопроса я подумал о гораздо более базовом решении, добавив скрытое поле, чтобы действовать как флаг, который я могу проверить.
Есть ли "более чистый" способ сделать это, чем добавлять мой собственный флаг?
Ответы
Ответ 1
Для общей проверки, было ли применение POST
:
if (!empty($_POST))
EDIT. Как указано в комментариях, этот метод не будет работать в некоторых случаях (например, с флажками и кнопкой без имени). Вы действительно должны использовать:
if ($_SERVER['REQUEST_METHOD'] == 'POST')
Ответ 2
Как насчет
if($_SERVER['REQUEST_METHOD'] == 'POST')
Ответ 3
На самом деле кнопка отправки уже выполняет эту функцию.
Попробуйте в ФОРМЕ:
<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)";
}
Ответ 4
if ($_SERVER['REQUEST_METHOD'] == 'POST')
.
Ответ 5
Использование
if(isset($_POST['submit'])) // name of your submit button
Ответ 6
Попробуйте это
<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'])){
}
Ответ 7
Вы также можете использовать:
is_array($_POST)