重定向太多

时间:2011-01-28 17:22:45

标签: php session redirect session-variables isset

我无法找到解决方案。基本上我们使用虚荣网址系统,因此它的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.

4 个答案:

答案 0 :(得分:11)

浏览器阻止您使用大量请求来破坏服务器。这很可能是由于header()将您发送到某个页面,而该页面又会将您发送到同一页面(或具有相同header()的页面)。

答案 1 :(得分:3)

这种情况最有可能发生,因为您被重定向到同一个注销页面。我会尝试以不同的方式设置位置。

答案 2 :(得分:2)

当我重定向到具有相同参数的同一页时发生了这种情况,如果浏览器不会停止在第二页上,则会导致浏览器对同一页面的无限循环请求迭代并给出此错误。

最好的选择 - 调试您的代码,看看您是否使用相同的查询字符串/ post params重新进入该页面...

答案 3 :(得分:0)

问题可能在于您转发的页面而不是您要转发的页面 当我从页面forwardingPage.php转发到(home.php)的页面未通过身份验证检查时,这发生在我身上。

接收home.php页面上的格式是

如果验证检查通过......请执行此操作 否则,如果身份验证检查失败,请使用标头功能转发回相同的forwardingPage.php

每次验证检查都失败,因此页面被转发然后返回自身。我修复了身份验证检查并解决了问题