У меня есть форма, где я размещаю некоторую информацию в волшебнике. Эта страница достигает POST и отображается с помощью Smarty. Как только я подал всю информацию, я использую другую почту, чтобы перейти на другую страницу. Теперь проблема в том, что когда я пытаюсь вернуться с кнопкой BACK, я получаю сообщение «Истек срок действия документа».
Является ли обычная вещь, пока я использую POST или?
Я сейчас пытаюсь использовать GET, но ничего не меняется, или мой GET написан неправильно.
Вот небольшая схема:
Page 1 -> POST -> Page 2 (wizard) -> POST -> Page 3
Когда я пытаюсь вернуться со страницы 3 на страницу 2, я получаю, что срок действия документа истек.
Большое вам спасибо за помощь в решении моей проблемы.
http://en.wikipedia.org/wiki/Post/Redirect/Get
На мой взгляд, вы должны сделать это для каждого POST, по крайней мере, на производстве.
Небольшой пример:
if ('GET' == $_SERVER['REQUEST_METHOD']) { //display view } else if ('POST' == $_SERVER['REQUEST_METHOD']) { //process input //update session header('Location: /next/page/to/view', true, 303); }
EDIT: хочу отметить, что эта старая публикация относится к представлениям браузера. В веб-службе RESTful вы, скорее всего, ответите 201 на POST.
Все правильно. Когда вы нажимаете BACK
на своей Page 3
вы на самом деле пытаетесь перейти на предыдущую страницу – эта страница создается как ответ на запрос POST для баузера. Для просмотра этой страницы необходимо отправить новый запрос POST и создать страницу, основанную на данных POST.