2017-03-29 54 views
0

我在我的本地主機上遇到了一些php問題。我從瀏覽器收到err_too_many_redirects錯誤。php | ERR_TOO_MANY_REDIRECTS

當我試圖指示用戶訪問Web服務器上不同位置的信息時,我收到此錯誤。

下面是代碼:

<?php 
session_start(); 
if(isset($_SESSION['valid'])) { 
    $loggedIn = $_SESSION['name']; 
    if($loggedIn != basename(getcwd())) { 
     echo "You are in the wrong place."; 
     $url = '../../users/' . $loggedIn . '/index.php'; 
     header('Location: ' . $url); 
    } else { 
     echo "Hello"; 
    } 
} else { 
    $url = 'index.php'; 
    header('Location: ' . $url); 
} 
?> 

可有人請向我解釋它爲什麼這樣做呢?我已經嘗試了多種方法,例如重新安排流程的順序。

有人可以幫我嗎?

+0

這意味着你有一個重定向循環,腳本一遍又一遍地重定向到自己。在某些時候,腳本只是停止,因爲它達到了它的最大重定向點,是你的代碼直接在index.php中? – Nicolas

+0

此代碼位於何處?在你的索引?在您嘗試重定向到的任一位置中,都會重新導向。檢查一下。 – Qirel

+0

在瀏覽器的調試工具中,正在執行的重定向是什麼?通常這是重定向的「無限循環」的結果,其中一個頁面重定向到另一個頁面,該頁面本身重定向回到第一個頁面。單單這個代碼並不能證明這一點。 – David

回答

-1

我的壞,愚蠢的錯誤。

我再指導他們直接回到用戶的索引頁

代碼:

<?php 
session_start(); 
if(isset($_SESSION['valid'])) { 
    $loggedIn = $_SESSION['name']; 
    if($loggedIn != basename(getcwd())) { 
     echo "You are in the wrong place."; 
     $url = '../../users/' . $loggedIn . '/index.php'; 
     header('Location: ' . $url); 
    } else { 
     echo "Hello"; 
    } 
} else { 
    $url = 'index.php'; 
    header('Location: ' . $url); 
} 
?> 

我不得不在爲if(isset($_SESSION['valid]'))這是else語句在這裏更新的網址:

$url = '../../index.php'; 
header('Location: ' . $url); 
+0

好吧,堅持下去,你的意思是說,你刪除了'回聲「你錯了。」;'或者你刪除了,並且必須改變你的$ url ='../../users/'。 $ loggedIn。 '/index.php';'到'$ url ='../../ index.php';'?你的回答不清楚,並且細節很短。這爲未來的讀者。 –

+0

如果你保留'回聲「你在錯誤的地方。」; $ url ='../../users/'。 $ loggedIn。 「的index.php」; header('Location:'。$ url);'那**不**工作,你知道嗎?那麼,該部分現在仍然存在於您的代碼中? –

+0

回聲「你錯了地方。」;是你應該刪除的那個 –

相關問題