2013-07-30 90 views
-1

我已創建member.php,並且只有在用戶登錄了正確的憑證後才能訪問此頁面。如果沒有,它會將它們重定向到index.php。這是代碼此網頁有重定向循環

<? 
ob_start(); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<title>Prime Time</title> 
<link href="member.css" rel="stylesheet" type="text/css"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="loadmessages.js"></script> 
<?php 
if ($_SESSION['username']){ 
    session_start(); 
} 
else 
header('Location:http://website.com/website/index.php'); 
ob_end_flush(); 
?> 
</head> 

然而,當我運行此我得到的錯誤"This webpage has a redirect loop"器(Chrome) 哪些錯誤的代碼? 謝謝!

回答

1

嘗試這樣的:

<? 
session_start(); 
ob_start(); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<title>Prime Time</title> 
<link href="member.css" rel="stylesheet" type="text/css"> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="loadmessages.js"></script> 
<?php 
if (!isset($_SESSION['username'])){ 
    header('Location:http://website.com/website/index.php'); 
} 
ob_end_flush(); 
?> 
</head> 
3

[上嘲諷]靜默更新問題始終是偉大的![嘲諷關閉]

既然你不重定向到member.php一遍又一遍,這將不會導致錯誤。

但像@MikeBrant說你有另外一個在你的代碼:

您必須在使用它之前開始的會話。

因此,您目前總是重定向到index.php。 如果還有另一個會話檢查,並且登錄用戶重定向回member.php,您已經找到了重定向循環的原因。

+1

我喜歡你的最後一次更新。這很好:D –

+1

@ErmanBelegu:我該說什麼?我有點驚訝 –

3

您必須先開始會話,然後才能開始與$_SESSION變量進行交互。把session_start()作爲第一行。

正如現在寫的,您的條件將始終評估爲false並導致重定向。現在爲什麼它的循環不明確,除非重定向重定向到它自己。

相關問題