PHP”;文件过期”;使用后退按钮后


PHP "Document Expired" after using the back button

我有一个表单,在其中我将在向导中提交一些信息。此页面可通过POST访问,并使用Smarty显示。一旦我把所有的信息都归档了,我就用另一个帖子转到另一个页面。现在,问题是,当我试图使用back按钮返回时,我收到了"Document expired"消息。

当我使用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);
}

编辑:想指出的是,这篇旧帖子是指浏览器提交。在RESTful web服务中,您可能会以201表示POST。

一切都是正确的。当你在Page 3上推BACK时,你实际上是在试图转到上一页——这个页面是作为对bowser POST请求的回复生成的。要查看此页面,应发送新的POST请求,并根据POST数据生成页面。