Milos Cuculovic
Milos Cuculovic

Reputation: 20223

PHP "Document Expired" after using the back button

I have a form where I am filing some informations in a wizard. This page is reaching by POST and displayed with Smarty. Once I filed all the informations in, I am using another post to get to another page. Now, the problem is that when I am trying to go back with the BACK button, I am geting the "Document expired" message.

Is than a normal thing while I am using POST or?

I am trying right now to use GET but nothing changes, or my GET is written wrong.

Here is a small schema:

Page 1 -> POST -> Page 2 (wizard) -> POST -> Page 3

When I try to come back from page 3 to page 2, I am geting the doc expired.

Thank you very much for your help regarding my problem.

Upvotes: 0

Views: 10051

Answers (2)

Explosion Pills
Explosion Pills

Reputation: 191779

http://en.wikipedia.org/wiki/Post/Redirect/Get

In my opinion, you should do this for every POST, at least in production.

Small example:

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: Want to point out that this old post was referring to browser submissions. In a RESTful web service you would likely respond with a 201 for POST.

Upvotes: 5

s.webbandit
s.webbandit

Reputation: 17000

Everything is correct. When you push BACK on your Page 3 you are actually trying to go to previous page - this page is generated as a reply to bowser's POST request. To view this page new POST request should be sent and page would be generated relying on POST data.

Upvotes: 1

Related Questions