繁体   English   中英

重定向太多

[英]Too many redirects

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM