2012-05-24 155 views
1

我有幾個$ _SESSION變量來跟蹤用戶來自哪個頁面。這樣,我可以使錯誤消息更具體,從而使Web應用程序更加友好。當用戶不是來自任何頁面時,應該在主頁頂部有一個「歡迎」消息。但是,當關閉瀏覽器並訪問主頁面時,我會收到與在關閉會話之前鏈接的頁面相對應的消息。這是我的函數:會話在瀏覽器關閉時不會過期

function come_from($from_page, $updates_occurred) { 
    $message = ""; 
    if ($updates_occurred == false) { 
     $message .= "Welcome to the User List.<br/>"; 
     $message .= "Select the user you wish to update, or add a new user. "; 
    } elseif ($from_page == "edit_user.php") { 
     $message .= "The user was successfully updated"; 
    } else { 
     $message .= "The user was successfully added"; 
    } 
return $message; 
} 

在主頁的頂部,我有下面的代碼:

if (isset($_SESSION['updates_occurred'])) { 
    $updates_occurred = $_SESSION['updates_occurred']; 
} else { 
    $updates_occurred = false; 
} 

if (isset($_SESSION['come_from'])) { 
    $come_from = $_SESSION['come_from']; 
} else { 
    $come_from = NULL; 
    echo "got here"; 
} 


echo come_from($come_from, $updates_occurred); 

* updates_occurred只是跟蹤用戶是否已成功編輯/上一加頁。

我想我主要關心的是:我使用會話變量的方式有問題嗎?如果我的理解是正確的,會話變量應該在瀏覽器關閉時過期,對嗎?

+0

哎呀我覺得很不禮貌:謝謝你給任何人提前! – nv39

+1

您是否關閉了整個瀏覽器(每個標籤頁,每個窗口)或只是選項卡?無論是好還是壞,當有任何標籤/窗口打開時,會話cookie仍會繼續存在於大多數(所有?)瀏覽器中,您必須關閉所有內容才能銷燬它們。 – DaveRandom

+0

太好了,那是問題所在。謝謝:-) – nv39

回答

2

關閉瀏覽器標籤頁不會關閉會話

您應該關閉整個瀏覽器關閉會話

+2

我認爲這應該是一個評論。 –

+0

無論評論或回答...這件事對他來說都是有用的 –

+1

*她;-)。但是,謝謝你,這很有用。你是對的,當我關閉瀏覽器時發送「歡迎」消息! – nv39

相關問題