3

我找不到解决这个问题的方法。基本上我们使用的是一个虚荣的 url 系统,所以它的 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

4 回答 4

14

浏览器阻止你用一堆请求敲击服务器。这很可能是由于header()将您发送到一个页面,而该页面又将您发送到同一页面(或具有相同的页面header())。

于 2011-01-28T17:28:09.607 回答
4

这很可能是因为您被重定向到同一个注销页面。我会尝试以不同的方式设置位置。

于 2011-01-28T17:25:15.050 回答
3

当我使用相同的参数重定向回同一页面时发生在我身上,如果浏览器不会在第二次迭代中停止并给出此错误,这将导致浏览器对同一页面的请求无限循环。

最好的选择 - 调试您的代码并查看您是否使用相同的查询字符串/帖子参数重新进入页面......

于 2012-04-29T03:49:26.900 回答
0

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

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

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

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

于 2014-07-15T12:18:07.180 回答