Все знают, что если обновить страницу после отправки формы, то данные обрабатываются (сохраняются повторно), то же, если страницу с формой вернуть и нажать отправить. Какие методы защиты есть?
Я пока думаю, что с формой можно создать сессию и сгенерировать код, после отправки сессия удаляется, а обработчик проверяет правильность кода.
_____________
Принимаю заказы, писать в ЛС
Цитата (Медведь @ 18.03.2015 - 02:36) |
если обновить страницу после отправки формы, то данные обрабатываются (сохраняются повторно) |
Можно перенаправить на ту же страницу (или refresh) после успешной обработки формы:
if (isDataSaved()) {
header("location: http://example.com/current/page")
}
Цитата (Медведь @ 18.03.2015 - 02:36) |
если страницу с формой вернуть и нажать отправить |
Если после отправки формы можно случайно нажать f5, то возврат на страницу - это уже осознанное действие, которому не стоит мешать, например, нужно добавить несколько записей у которых все поля одинаковые кроме одного. Но если все таки нужно так сделать то можно использовать токен
AllesKlar
18.03.2015 - 08:43
if( ! empty($_POST))
{
$_SESSION['POST'] = $_POST;
header('location: myhandler.php');
exit;
}
else
{
$post_data = $_SESSION['POST'];
..............
..............
..............
}
_____________
[продано копирайтерам]
andrey888
18.03.2015 - 09:22
header("location: http://... ");
die();
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
AllesKlar
18.03.2015 - 09:49
andrey888
Что это было? Пост ради поста?
Редирект внутри одного хоста прекрасно и без http отработает.
А die() - это алиас exit()
_____________
[продано копирайтерам]
andrey888
30.03.2015 - 08:27
AllesKlar не смотрел на твой пост.. написал и вышел. Обиделся что-ли ? )
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
AllesKlar
30.03.2015 - 17:11
andrey888Вот еще. Соскучился
_____________
[продано копирайтерам]
inpost
30.03.2015 - 18:49
Ну да, так тяжело воспользоваться поиском на форуме, что проще же создать тему и получить неправильный ответ
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.