在POST事件后使用“后退”按钮中断页面

时间:2012-05-02 10:22:10

标签: php post

这里运行的搜索功能http://www.ssaib.co.uk/security-provider-search/完全正常,您可以获得结果集。但是,如果您在选择结果并获得结果并单击“更多”后获得结果,则尝试“返回”分页符而不是重新提交帖子。似乎无法在任何地方找到这一点。

任何帮助非常感谢

2 个答案:

答案 0 :(得分:1)

你在浏览器中使用了什么?

我刚测试过,它适用于最新的Chrome,Firefox,Opera,Safari和Internet Explorer。返回后,您将再次访问搜索结果。

编辑:

您有两种选择。

首先:

  • 使用GET变量而不是POST提交搜索。这样做要好得多,因为搜索引擎也可以抓取搜索结果。

第二

如果你仍然想要使用POST,那么智能搜索系统会像这样摆脱POST重定向:

  • 目标网址为“search.php”的表单(或您正在使用的目标网址)
  • 提交到search.php后,您进行数据库搜索并为该搜索分配唯一的“ID”
  • search.php然后将用户重定向到'/ searchresults /'页面(或其等价物),该页面在URL中具有唯一ID(如'/ searchresults / 23442 /')或GET变量('/ searchresults /?id = 23442' )。在该页面中,将向用户显示通过search.php脚本找到的搜索结果。
  • 这意味着如果用户点击“返回”,他们就会返回搜索结果页面。这样做的好处是,您无需在每次用户点击“返回”时再次搜索数据库。浏览器永远不会回到已经通过标题重定向的URL,因此即使用户返回两次,它也不会破坏任何内容。
  • 过了一段时间,您应该从数据库中使“旧”搜索无效,或者如果用户再次要求提供相同的ID,则重新生成它们。

答案 1 :(得分:0)

您应该使用GET进行检索。但是,如果您使用POST,则始终(在我看来)使用Post/Redirect/Get。这通常要求您使用SESSION来保持重定向之间的状态。