一尘不染

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

php

我的问题是,当上一页由表单创建时,后退按钮会使浏览器说“页面已过期”。

例:

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

现在,当访客单击浏览器中的“后退”按钮时,它将显示类似“页面已过期”的信息。

而是应该在没有警告的情况下显示前一页(第2页,带有用户列表)

您如何解决这种行为?


阅读 501

收藏
2020-05-29

共1个答案

一尘不染

如果您要提交包含搜索参数的for,那么您将尝试 获取 一些数据,而不是修改某些数据。

因此,应使用HTTP GET方法,而不要使用POST:要创建/修改数据时应使用POST,而要获取某些数据时应使用GET。

或者,如果您必须执行一些创建/修改操作:

  • 表单首先发布到第一页
    • 该页面执行一些操作 (例如,向数据库中写入内容)
    • 然后使用LocationHTTP标头重定向到另一个页面。
  • 这是最后一页,即浏览器使用GET请求查询的页面,其中显示了从URL中接收的参数获取的数据。

有关此信息,请参见Wikipedia上的“
发布/重定向/获取”页面。

2020-05-29