2016-11-23 75 views
2

您好,我正在嘗試發送重定向到登錄頁面時出現此錯誤。 這裏是我的代碼...本地主機重定向你太多次,當使用標題()

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(); 
+1

放'退出()'頭之後'()' –

+0

什麼頁面的代碼第一位的? 'login.php'? –

+0

我把標題放在exit()後,我得到了相同的結果。 @Jon - 第一位代碼,它是index.php的頭部分的一部分 – Cristi

回答

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; 
} 
+0

感謝您的輸入 - 我已經嘗試過,並仍然是相同的結果... – Cristi

0

使用您的形式POST請求嘗試。在發出get請求後,我遇到了使用重定向的問題。做兩個get請求,一個來自form,另一個來自redirect導致無限循環。

相關問題