[英]Using PHP session variable to keep user logged into website
我想在用戶登錄網站時為會話變量分配一個值。 我讀到我必須在頁面頂部顯式啟動會話才能執行此操作。 所以我插入:
if (!isset($_SESSION)){
session_start();
echo "started";
}
我注意到的第一件事是,每次重新加載頁面時都會顯示“開始”。 那是預期的行為嗎? 我假設第二次加載頁面時,會話應該已經存在,因此不會顯示“已啟動”。
在頁面的下方,我有:
$_SESSION['id']=2;
echo "<p>Your session ID is: " . $_SESSION['id'] . "</p>";
可以在“ echo”語句中正確顯示ID。 因此,即使在為會話變量分配值之后,當我重新加載頁面時,它也將“ started”放在頂部。
難道我做錯了什么? 謝謝!
這是預期的行為,您需要在每次加載頁面時將任何輸出發送到瀏覽器之前調用session_start()
,這就是每次生成回聲的原因。 在這種情況下,您的if語句是不必要的,您應該簡單地調用它而不使用if。
session_start();
例如,一個$_SESSION
變量將永遠無法訪問,除非您調用session_start()
,盡管該變量將存在於瀏覽器的會話中。 調用session_start()
僅允許您訪問該超全局數組。
您需要將session_start()
放在文件頂部。 否則,您將無法使用$_SESSION
數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.