2014-01-30 1 views
1

PHP Post/Redirect/Получить решение хорошо только для обновления страницы?Post/Redirect/Получить решение только для обновления страницы?

Как насчет того, если пользователь дважды нажмет кнопку «Назад» и повторит отправку формы? Единственное решение, которое я нашел, это проверить мою базу данных, если те же данные уже отправлены.

Есть ли другие решения без запроса базы данных?

Заранее спасибо!

+0

О какой форме вы говорите? – Ant

ответ

0

PRG идеально подходит для браузера. Переадресация HTTP заменяет URL-адрес в истории браузера, а не добавляет новую запись. Если вы применяете PRG последовательно, то есть вы всегда возвращаете перенаправление из POST, тогда история браузера будет содержать только «безопасные» страницы (GET), в истории никогда не будет URL POST.

По-прежнему существует вероятность получить дубликаты форм. Например, если пользователь дважды нажимает кнопку отправки. Поэтому, если вы хотите быть более безопасным, вам понадобится дополнительный механизм (например, nonce) для предотвращения двойных представлений.

0

PRG используется в силу характера HTTP. POST не является безопасной операцией, поэтому PRG является предпочтительным.