我一直在爲此敲打我的頭。我的代碼幾乎與其他項目完全相同。下面是我如何做到這一點:會話在頁面重定向後無法維護
session_start();
set_up_session($username);
redirect_to('index.php');
而且,這兩個功能:
function redirect_to($location=null) {
if($location!=null) {
header("Location: {$location}");
exit;
}
}
function set_up_session($username) {
session_start();
$_SESSION['user_id']=$id;
$_SESSION['logged_in']=true;
$_SESSION['username']=$username;
}
如果我註釋掉重定向和回聲任何$_SESSION
VAR的中,VAR正確讀取。但重定向後,會話結束。
這就是下一頁。
<?php if (!isset($_SESSION['logged_in'])) { ?>
// do stuff <-- this is what gets shown showing session is no longer active
<?php } else { ?>
<p>Hi, <?php echo $_SESSION['username']; ?></p>
<?php } ?>
這沒有錯,這是完全正常的。如果你想讓頁面識別一個會話,那麼你必須使該頁面成爲會話的一部分。我編輯了我的答案來阻止你的錯誤。 – Vector
我修正了標題錯誤;但是如果我不想爲來賓用戶啓動會話呢? (或者它會不會損害任何東西?如果沒有設置var的話) – KickingLettuce
如果沒有通過登錄系統給出會話變量等,來賓將不會成爲會話的一部分。 – Vector