Страницы

Поиск по вопросам

четверг, 6 июня 2019 г.

Проверка отправки формы

Привет.Какая лучше проверка что форма отправлена? Припустим у нас есть что я только не встречал: 1.Cамый популярный вариант if (isset($_POST['submit']) 2.Тоже вариант if (isset($_POST['submit']) && !empty($_POST['submit'])) 3.Но мне больше всего пригляделся вариант: if ($_POST['photoList']=='submit'); Это ведь вариант включает по -умолчанию первые 2 проверки.Почему его так массово не используют? C post вроде более менее понятно,а как же быть с GET -отправкой формы? Ведь любой может прописать в адресной строке нужный параметр


Ответ

последний вариант не используют, так как в случае, если сабмита не было, будет предупреждение о несуществующем ключе массива.
ИМХО, из простых самый лучший вариант:
function form_submitted($form_name=false){ if(!isset($_POST['submitted'])){ // был ли вообще сабмит return false; //неа, завершаем } if($form_name && $_POST['submitted']!=$form_name){ //если проверяется конкретная форма, была ли отправлена именно она? return false;//нет, завершаем } return true;//все, ок. }
Более сложный вариант - генерить уникальный хэш при каждой генерации формы, чтобы нельзя было отправить несколько раз, например, при обновлении
Поставил ссыль на этот способ

Комментариев нет:

Отправить комментарий