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

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

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