【发布时间】:2012-07-11 06:54:53
【问题描述】:
我有一个表格,我在向导中填写一些信息。此页面通过 POST 到达并使用 Smarty 显示。一旦我提交了所有信息,我将使用另一个帖子进入另一个页面。现在,问题是当我尝试使用 BACK 按钮返回时,我收到“文档已过期”消息。
当我使用 POST 时,这不是正常的事情吗?
我现在正在尝试使用 GET,但没有任何改变,或者我的 GET 写错了。
这是一个小架构:
Page 1 -> POST -> Page 2 (wizard) -> POST -> Page 3
当我尝试从第 3 页返回到第 2 页时,文档已过期。
非常感谢您对我的问题的帮助。
【问题讨论】:
-
这对于 POST 来说是正常的。 POST 是为了改变服务器的状态,这意味着你正在查看的页面可能已经过期,或者它的会话已经过期。
-
谢谢 2Truth,我应该使用 GET 而不是 POST 对吗?
-
GET 应该用来读取服务器状态,永远不要改变它。 (从数据库中读取数据,获取信息)。如果您要更改服务器上的某些内容,请使用 POST,而不是 GET。 Page Expired 页面没什么好怕的,也不是你应该努力摆脱的东西。
-
我同意。 GET 是你要走的路,但它不安全,也不意味着这个(或者如果它只是几个值,你也可以把它放在一个 SESSION 中,只要你在它们出现在第 3 页时删除它们 - 虽然这很糟糕练习 - 但它有效)
-
感谢您的@Truth 和 PoeHaH。其实在第1页和第2页中,服务器上没有任何变化,我只是在阅读,我也可以使用GET。所以,如果我将 GET 用于第 2 页,一旦我转到第 3 页,我将返回第 2 页,而没有文档过期消息