2015-02-05 155 views
0

每次我去我的index.php頁面,我收到以下錯誤谷歌瀏覽器:PHP - 重定向循環錯誤

此網頁有重定向循環

噢,我的phpmyadmin數據庫,如果account_type中的文本是'deactivate',我做到了,所以用戶自動重定向到logout.php(這在functions.php頁面中)

如果它是'active',那麼什麼都不會發生。

我的index.php代碼:

<?php include_once 'connect.php';?> 
<?php include_once 'functions.php';?> 

<!doctype html> 
<html lang="en" class="home-page"> 
    <head> 
    </head> 
    <body> 

     <ul class="linklist-admin"> 

     <?php 
     if (loggedin()){ ?> 
     <li><a href="profile">My Profile</a></li> 

    <?php } else { ?> 

      <li><a href="login.php">Sign In</a></li> 

    <?php } ?> 
     </ul> 

    </body> 
</html> 

我的functions.php代碼:

<?php 

session_start(); 

function loggedin(){ 
if (isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])){ 
    return true; 
     } else { 
      return false; 
    } 
    } 

if(loggedin()){ 
$my_id = $_SESSION['user_id']; 
$user_query = mysql_query("SELECT username, account_type FROM users WHERE id='$my_id'"); 
$run_user = mysql_fetch_array($user_query); 
$username = $run_user['username']; 
$account_type = $run_user['account_type']; 

$query_level = mysql_query("SELECT name FROM user_level WHERE id='$user_level'"); 
$run_level = mysql_fetch_array($query_level); 
$level_name = $run_level['name']; 

$d = 'deactivate'; 
$a = 'active'; 

} 



if($account_type == $d) { //logs you out if your account is deactivated. 
header('location: logout.php'); 
} 


?> 

我logout.php代碼:

<?php 

include 'connect.php'; 
include 'functions.php'; 

session_destroy(); 

header('location: index.php'); 
+0

如果'functions.php'重定向到'logout.php',並且'logout.php'包含'functions.php',那麼'logout.php'會無休止地重定向到它自己。 – showdev 2015-02-05 23:22:42

+0

是的,這是問題所在。我該如何解決它?謝謝。 – user2453646 2015-02-05 23:25:21

+2

快速解決方法是在if(logged_in()){...}內移動'if($ account_type == $ d){...}'代碼。這樣,一旦會話被銷燬並且用戶註銷,重定向就不會發生。但最好的想法很可能是重新考慮你的結構/邏輯,因爲這種類型的東西很快就會變成蜘蛛網重定向,越來越難以排除故障。 – showdev 2015-02-05 23:28:30

回答

0
if($account_type == $d) { 

//do stuff here 

} 

我認爲這就是你要。