簡體   English   中英

使用PHP會話變量來保持用戶登錄網站

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM