我无法找到解决方案。基本上我们使用虚荣网址系统,因此它的user.domain.com。所有文件都可以像user.domain.com/home.php等一样访问。当你清除cookie重定向工作时,它会提示他们再次登录。但是当我使用注销时,它仍然可以工作,但当他们返回到登录链接时(user.domain.com,在用户的登录页面上有一个登录表单)它将无法正常工作。我得到的错误是
错误讯息:
The page isn't redirecting properly
Firefox has detected that the server is redirecting the request for this address
in a way that will never complete.
This problem can sometimes be caused by disabling or refusing to accept
cookies.
所有成员页面的重定向代码:
if(!isset($_SESSION['user_name'])) { header("Location: http://$_SERVER[HTTP_HOST]");}
Note: The $_SERVER[HTTP_HOST] captures the user.domain.com value for redirect.
退出代码:
<?php
session_start();
session_destroy();
header( 'Location: $_SERVER[HTTP_HOST]' ) ;
?>
此问题消失的唯一方法是用户清除其Cookie。
更新:使用logout.php后,我转到其中一个成员页面user.domain.com/home.php而不是重定向到user.domain.com进行登录,它给了我重定向错误。这会是会话的问题还是标题的问题?
我可以增强或添加什么来解决这个问题?我尝试过谷歌搜索,但没有找到任何特别的东西。我真的需要一些帮助来解决这个问题。感谢。
这是我在Safari中收到的错误消息:
Too many redirects occurred trying to open “http://user.domain.com/home.php”.
This might occur if you open a page that is redirected to open another page which then is redirected to open the original page.
答案 0 :(得分:11)
浏览器阻止您使用大量请求来破坏服务器。这很可能是由于header()
将您发送到某个页面,而该页面又会将您发送到同一页面(或具有相同header()
的页面)。
答案 1 :(得分:3)
这种情况最有可能发生,因为您被重定向到同一个注销页面。我会尝试以不同的方式设置位置。
答案 2 :(得分:2)
当我重定向到具有相同参数的同一页时发生了这种情况,如果浏览器不会停止在第二页上,则会导致浏览器对同一页面的无限循环请求迭代并给出此错误。
最好的选择 - 调试您的代码,看看您是否使用相同的查询字符串/ post params重新进入该页面...
答案 3 :(得分:0)
问题可能在于您转发的页面而不是您要转发的页面 当我从页面forwardingPage.php转发到(home.php)的页面未通过身份验证检查时,这发生在我身上。
接收home.php页面上的格式是
如果验证检查通过......请执行此操作 否则,如果身份验证检查失败,请使用标头功能转发回相同的forwardingPage.php
每次验证检查都失败,因此页面被转发然后返回自身。我修复了身份验证检查并解决了问题