此网页生成了过多的重定向。清除此网站的 Cookie 或允许第三方 Cookie 可能会解决此问题。

阿海
  • 78

网页提示:此网页生成了过多的重定向。清除此网站的 Cookie 或允许第三方 Cookie 可能会解决此问题。如果不能解决,可能是服务器配置有问题,而不是您的计算机有问题。

一个网站,分为前台和后台,都需要各自的帐号密码登录。
为了保存登录状态,我把登录信息session存在cookie里,设置cookie的过期时间无限长,如果session过期就从cookie中取出登录信息进行验证登录。

前台没有任何问题,可以自动登录,后台在关闭浏览器session失效后再进入,提示:此网页生成了过多的重定向。清除此网站的 Cookie 或允许第三方 Cookie 可能会解决此问题。如果不能解决,可能是服务器配置有问题,而不是您的计算机有问题。

前后台的代码基本是一样的:

  1. 检测session是否存在,session存在直接进入

  2. session不存在,检测cookie,通过cookie获取登录信息登录。信息正确进入,信息错误跳转至登录界面。

  3. session和cookie都不存在,跳转至登录界面。

    //验证是否登录
    public function _initialize(){

        $session=session('uid');
        $cookie=cookie('auto');

        //session失效 cookie失效
        if(!isset($session) AND !isset($cookie)){
            $this->redirect('Login/login',array(),1,'请先登录');
            exit;
        }

        //session失效 cookie有效
        if(!isset($session) AND isset($cookie)){

            //使用cookie登录
            $AdminModel=D('Admin/Admin');
            $result=$AdminModel->login($cookie);

            if($result>0){//登录成功

                //判断管理员身份
                if($result==1){//超级管理员
                    $this->redirect("Task/task1");
                    exit;
                }elseif($result>1){//普通管理员
                    $this->redirect("Eat/displayEat");
                    exit;
                }

            } else {//登录失败 cookie中的信息不可用
                $this->redirect('Login/login',array(),1,'登录信息已改变,请重新登录');
                exit;
            }

        }
回复
阅读 14.4k
2 个回答
✓ 已被采纳

不知道你的Login/login方法是否继承了_initialize()?如果继承了,必然重定向变成死循环!

重定向问题,清除该网站cookie。

宣传栏