这是我的页面:
重定向页面: 如果用户有一个打开的 session ,重定向到正确的资源 否则重定向到登录页面
登录页面: 如果用户登录信息有效,则重定向到 $_SERVER['HTTP_REFERER'] 否则显示登录页面
当您访问重定向页面时,它发现您没有有效 session 并重定向到登录页面。然后您可以毫无问题地登录,但在身份验证后我收到“此网页有重定向循环”。 Chrome 中的页面。
这不是一个真正的循环,因为有几种出路(IE 提供有效的登录详细信息并转到目标资源,提供无效的登录并接收错误消息等)。但是我可以看到浏览器的困惑(从 a 到 b 再到 a)。
有什么办法可以解决这个问题吗?
干杯
最佳答案
$_SERVER['HTTP_REFERER'] 将始终是登录页面,因为您必须在成功登录之前加载登录页面。因此,一旦您成功登录,referrer 就是登录页面,因此登录页面会将您重定向到您仍然成功登录的登录页面,因此它会让您一遍又一遍地登录。
与其依赖 $_SERVER['HTTP_REFERER'],不如将他们尝试访问的页面存储在 $_SESSION 或 $_COOKIE 变量中。 session 很可能会更好,具体取决于您的设置。
关于php - 是什么导致重定向循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4260028/