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