2011-03-14 125 views
0
if ($count == 1) { 
    $_SESSION["authenticated"] = $row[0]; //register session with user id 
    header("Location: success.php"); 
} 

success.php:會話註冊的問題?

<? 
session_start(); 
if (isset($_SESSION['authenticated'])) { 
    header("Location: view.php"); 
} else { 
    header("Location: index.php"); 
} 
?> 

它似乎並不奏效它一直我重定向到index.php,如會話從來沒有登記。我究竟做錯了什麼?

+1

添加在session_start();到第一個文件。 – eisberg 2011-03-14 11:59:40

+0

哇@eisberg修復它。非常感謝!在這裏發帖讓我可以給你一個綠色的複選標記? :) – Kyle 2011-03-14 12:01:33

+0

你確定你沒有得到E_NOTICE錯誤的地方?檢查你的日誌。您沒有提供足夠的代碼來進行調試。這段代碼中沒有任何特定的內容會導致錯誤。 – arnorhs 2011-03-14 12:03:03

回答

2

您需要添加在session_start()進入第一塊

if ($count == 1) { 
    session_start(); 
    $_SESSION["authenticated"] = $row[0]; //register session with user id 
    header("Location: view.php"); 
    exit; 
} 

並且在其success.php沒有意義的。只需直接將用戶view.php
,你必須再次驗證用戶身份驗證:

<? 
session_start(); 
if (empty($_SESSION['authenticated'])) { 
    header("Location: index.php"); 
    exit; 
} 
?> 

exit是位置後必須做的,或者你的保護將沒有保護

+0

再次感謝Col! – Kyle 2011-03-14 12:02:30

+0

這是一個好主意。我真的不需要'success.php.'謝謝。我也會確保也加入退出;在所有標題重定向下。 – Kyle 2011-03-14 12:33:11