[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита от повторной отправки формы
Миша
Все знают, что если обновить страницу после отправки формы, то данные обрабатываются (сохраняются повторно), то же, если страницу с формой вернуть и нажать отправить. Какие методы защиты есть?

Я пока думаю, что с формой можно создать сессию и сгенерировать код, после отправки сессия удаляется, а обработчик проверяет правильность кода.

_____________
Принимаю заказы, писать в ЛС
kaww
Цитата (Медведь @ 18.03.2015 - 02:36)
если обновить страницу после отправки формы, то данные обрабатываются (сохраняются повторно)

Можно перенаправить на ту же страницу (или refresh) после успешной обработки формы:

if (isDataSaved()) {

header("location: http://example.com/current/page")
}

Цитата (Медведь @ 18.03.2015 - 02:36)
если страницу с формой вернуть и нажать отправить

Если после отправки формы можно случайно нажать f5, то возврат на страницу - это уже осознанное действие, которому не стоит мешать, например, нужно добавить несколько записей у которых все поля одинаковые кроме одного. Но если все таки нужно так сделать то можно использовать токен
AllesKlar
//myhandler.php
if( ! empty($_POST))
{
$_SESSION['POST'] = $_POST;
header('location: myhandler.php');
exit;
}
else
{
$post_data = $_SESSION['POST'];
..............
..............
..............

}


_____________
[продано копирайтерам]
andrey888
header("location: http://... ");
die();


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
AllesKlar
andrey888
Что это было? Пост ради поста?
Редирект внутри одного хоста прекрасно и без http отработает.
А die() - это алиас exit()

_____________
[продано копирайтерам]
andrey888
AllesKlar не смотрел на твой пост.. написал и вышел. Обиделся что-ли ? )

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
AllesKlar
andrey888
Вот еще. Соскучился laugh.gif

_____________
[продано копирайтерам]
inpost
Ну да, так тяжело воспользоваться поиском на форуме, что проще же создать тему и получить неправильный ответ wink.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.