2014-02-27 41 views
0

我想重定向用戶索引頁面,如果他們沒有登錄時,他們試圖直接到另一個頁面,如「搜索或收件箱。現在這是我做的,但它保持重定向記錄和不-logged。重定向用戶如果沒有記錄

$u = ""; 
$isOwner = "no"; 
if($u == $log_username && $user_ok == true) { 
    $isOwner = "yes"; 
} 
if($isOwner != "yes") { 
    header("location: index.php"); 
    exit(); 
} 

什麼是這一點的最好辦法?

+0

顯然,你的'($ u == $ log_username && $ user_ok == true)'不會觸發。 – Flosi

+2

我們無法幫助您根據此代碼。 '$ log_username'和'$ user_ok'來自哪裏?你如何認證用戶?您已經省略了太多的方法,因此無法回答。 – meagar

+0

你可能想在某處添加'session_start()'來檢查用戶是否連接... –

回答

0

當你的應用程序的用戶日誌,你要設置陳述他對用戶的會話標誌/她正確地驗證和記錄在隨後的請求中,根據會話變量的說明,將用戶重定向到登錄頁面或讓用戶在應用程序中繼續進行。簡單的形式,它看起來像這樣。

在您的登錄處理程序中,例如login.php中,

if (authenticate($_POST['username'], $_POST['password']) { 
    $_SESSION['authenticated'] = true; 
    # redirect to the main page 
} 

現在,在隨後的請求,在您的應用程序的早期,調用相應的處理程序之前,

if (empty($_SESSION['authenticated'])) { 
    # redirect to login page 
} 

# invoke handlers for the request 

對於這個工作,你需要確保PHP會話自動啓動或者在應用程序流程的早期使用session_start()手動啓動它。

0

我後來嘗試了這種方法,它對我來說非常合適。

if($user_ok == true){} 
else{ 
    header("location: login.php?u=".$_SESSION["username"]); 
exit(); 
} 

我只是想感謝大家的意見。

相關問題