親愛(ài)的,我創(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();}我用它來(lái)保護(hù)一些頁(yè)面,以便未經(jīng)身份驗(yàn)證的用戶可以訪問(wèn)。我放了一個(gè)條件,允許檢查用戶是否已登錄,如果沒(méi)有將被重定向到登錄表單:if(!$this->Session->isLogged()){ $this->redirect('users/login');}函數(shù) isLogged 是:public function isLogged(){ return isset($_SESSION['User'][0]->id);}我嘗試為 BO 管理頁(yè)面做同樣的事情并且它有效。但我也需要保護(hù)頭版。問(wèn)題是當(dāng)我嘗試訪問(wèn)首頁(yè)時(shí),我重定向到登錄表單,但我的 Chrome 瀏覽器出現(xiàn) ERR_TOO_MANY_REDIRECTS 錯(cuò)誤。我試圖刪除 cookie,但我遇到了同樣的問(wèn)題。當(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è)面上,則不應(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ā)此錯(cuò)誤:
無(wú)限重定向:您可能無(wú)限次調(diào)用您提到的函數(shù)
連續(xù)重定向過(guò)多:“Header”原生 PHP 函數(shù)每個(gè)實(shí)例僅處理一個(gè)標(biāo)頭。
簡(jiǎn)而言之:與您的案例相關(guān)的錯(cuò)誤肯定與無(wú)限重定向有關(guān),否則可能會(huì)調(diào)用其他重定向以及您正在調(diào)用函數(shù)的頁(yè)面中想要的重定向。
- 2 回答
- 0 關(guān)注
- 180 瀏覽
添加回答
舉報(bào)
0/150
提交
取消