親愛的,我創建了一個允許將用戶重定向到特定 URL 的函數。該函數被命名為重定向和用戶頭函數:public function redirect($url, $code = null){ if($code == 301){ header("HTTP/1.1 301 Moved Permanently"); } header('Location: '.Router::url($url)); die();}我用它來保護一些頁面,以便未經身份驗證的用戶可以訪問。我放了一個條件,允許檢查用戶是否已登錄,如果沒有將被重定向到登錄表單:if(!$this->Session->isLogged()){ $this->redirect('users/login');}函數 isLogged 是:public function isLogged(){ return isset($_SESSION['User'][0]->id);}我嘗試為 BO 管理頁面做同樣的事情并且它有效。但我也需要保護頭版。問題是當我嘗試訪問首頁時,我重定向到登錄表單,但我的 Chrome 瀏覽器出現 ERR_TOO_MANY_REDIRECTS 錯誤。我試圖刪除 cookie,但我遇到了同樣的問題。當我嘗試忽略以下行時,我可以看到我的登錄表單:if(!$this->Session->isLogged()){ $this->redirect('users/login');}
2 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
如果您已經在該頁面上,則不應嘗試重定向到登錄。
if(!$this->Session->isLogged() && !$this->isLoginPage()){
$this->redirect('users/login');}
}

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
PHP 在兩種主要情況下引發此錯誤:
無限重定向:您可能無限次調用您提到的函數
連續重定向過多:“Header”原生 PHP 函數每個實例僅處理一個標頭。
簡而言之:與您的案例相關的錯誤肯定與無限重定向有關,否則可能會調用其他重定向以及您正在調用函數的頁面中想要的重定向。
- 2 回答
- 0 關注
- 182 瀏覽
添加回答
舉報
0/150
提交
取消