localhost在使用header()时重定向了你太多次了

时间:2016-11-23 09:48:52

标签: php

我正在尝试将重定向发送到登录页面时收到此错误。 这是我的代码......

  

localhost页面无效

     

localhost重定向了你太多次了。尝试清除您的cookie。   ERR_TOO_MANY_REDIRECTS

我正在尝试的任何事情都给了我这个错误。

任何建议都会非常感谢,谢谢!

<?php 
if(!$session->is_signed_in()){

    header("Location:login.php");


    } else{
         header("Location:logout.php");

} ?>

和这个

class Session{

    private $signed_in = false;
    public $user_id;

    public function __construct(){
            session_start();
        $this->check_the_login();

    }
// check the value of signed in property - getter method

    public function is_signed_in(){

        return $this->signed_in;
    }

// login method 

    public function login($user){

        if($user){
            $this->user_id = $_SESSION['user_id'] = $user->id;
            $this->signed_in = true;
        }


    }
// log out method 

    public function logout(){

        unset($this->$_SESSION['user_id']);
        unset($this->user_id);
        $this->signed_in = false;


    }


// check the login method

    private function check_the_login(){

            if(isset($_SESSION['user_id'])){

                $this->user_id = $_SESSION['user_id'];
                $this->signed_in = true;

            }else{

                unset($this->user_id);
                $this->signed_in = false;
            }

        }
    }

$session = new Session();

2 个答案:

答案 0 :(得分:1)

似乎您的退出方法有错误。将此行unset($this->$_SESSION['user_id']);替换为unset($_SESSION['user_id']);并尝试

public function logout(){
    unset($this->$_SESSION['user_id']);
    unset($this->user_id);
    $this->signed_in = false;
}

应该如下

public function logout(){
    unset($_SESSION['user_id']);
    unset($this->user_id);
    $this->signed_in = false;
}

答案 1 :(得分:0)

尝试在表单中使用POST请求。我在get请求后使用重定向时遇到此问题。执行两个get请求,一个来自form,另一个来自redirect会导致无限循环。