Проверка формы отправки - 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)