Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита формы от повторной отправки
 
 автор: ramundo   (25.04.2017 в 21:59)   письмо автору
 
 

Читал, что обычно для такой защиты используется следующая схема:

- создается переменная сессии с уникальным значением
- к форме добавляется скрытое поле с этим уникальным значением
- в обработчике формы сверяются значения из сессии и из скрытого поля
- если все совпадает, то обновляем сессионное значение и выполняем необходимые процессы. Если нет - выдаем ошибку или что-нибудь по своему вкусу.

Но при таком подходе появляется проблема, когда пользователь открывает вторую вкладку на сайте, и форма из первой выдаст ошибку.

Подскажите, что с этим можно сделать?

  Ответить  
 
 автор: mihdan   (20.10.2017 в 20:38)   письмо автору
 
   для: ramundo   (25.04.2017 в 21:59)
 

Дедовский способ - редирект, после отправки формы редиректим страница саму на себя, добалвяя в URL случайный параметр, типа


<?php
if ( ! empty( $_POST )  ) {
    
header'Location: ?rnd=' time() );
}


Это позволит избежать повторной отправки формы

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования