PHP重定向但保留页面在历史记录中

时间:2017-10-24 14:54:17

标签: php url-redirection

我网站上的每个页面都会进行登录检查。如果用户未登录,则会将其重定向到登录页面。但是在他们登录后,如果他们想要转到该页面,则会从浏览器历史记录中删除它们。所以......

  1. 我在第A页
  2. 我点击页面B.哎呀!我的会话超时了,我还没有登录。
  3. 我被重定向到登录页面(使用PHP header( 'Location:http://example.com/login.php');功能)。我登录。
  4. 如果我点击“返回”,则转到第A页。页面B不在历史记录中。
  5. 如何点击后退按钮将我带到页面B?

    编辑澄清:返回带我再次登录页面。回来第二次带我去A页。

1 个答案:

答案 0 :(得分:2)

您可以让登录页面将用户重定向到他们之前浏览的页面。基本上,在您的身份验证功能期间,您将获取当前URL或查询字符串并在成功登录后保存它。

有几种不同的存储方法,

  • Cookie(请参阅setcookie() here的文档)
  • 会话(请参阅$_SESSION here
  • 的文档
  • 在网址中,通过将以前的网址编码为变量并传递,您将重定向到http://example.com/login.php?redirect=somepage.php

登录成功后,您将加载该页面而不是一般主页。

但是,这并没有专门解决您提出的问题。在更改浏览器历史记录方面,如评论中所述,您需要使用Javascript,而历史记录API文档为here