后退按钮重新提交表单数据($ _POST)

Cud*_*dos 19 php forms post button back

我的问题是后退按钮导致浏览器在表单创建上一页时说"页面已过期".

例:

  • page1:使用搜索条件提交的表单($ _POST请求,表单指向第2页)
  • page2:接收$ _POST请求并显示结果(带链接的用户列表,指向第3页)
  • 第3页:显示用户个人资料

现在,当访问者点击浏览器中的后退按钮时,它将显示"页面已过期"之类的内容.

相反,应显示上一页没有警告(第2页,带有用户列表)

你的策略是如何解决这种行为的?

Pas*_*TIN 23

如果您使用搜索参数提交for,则尝试获取某些数据,而不是修改某些数据.

因此,您应该使用HTTP GET方法,而不是POST:当您打算创建/修改数据时应该使用POST,并且当您打算获取某些数据时应该使用GET.


或者,如果您有一些必须完成的创建/修改操作:

  • 表单首先POST到第一页
    • 该页面执行一些操作(比如写一些东西到数据库)
    • 然后使用LocationHTTP标头重定向到另一个页面.
  • 这是最后一页,即浏览器使用GET请求进行的查询,显示从URL中接收的参数获取的数据.

请参阅维基百科上的帖子/重定向/获取页面.