Привет.Какая лучше проверка что форма отправлена? Припустим у нас есть что я только не встречал: 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;//все, ок.
}
Более сложный вариант - генерить уникальный хэш при каждой генерации формы, чтобы нельзя было отправить несколько раз, например, при обновлении
Поставил ссыль на этот способ
Комментариев нет:
Отправить комментарий