我在理解PHP的會話時遇到了一些麻煩。首先我將會話數據保存在數據庫中,我使用PHP的session_set_save_handler()
函數來定義它。PHP的會話存儲
我明白當PHP保存會話數據到數據庫的方法是像這樣:
如果我定義了那麼一些會話變量輸出一些文本到用戶的瀏覽器,我相信會話數據不會保存到DB直到文本輸出。請看看這段代碼:
$_SESSION['username'] = $username;
//check if session variable set
if($_SESSION['username'] != $username)
{
die('error...');
}
在代碼中的if語句返回false,所以die()
永遠不會發生。此外,PHP不會將會話數據寫入數據庫,直到if語句之後。我不明白的是,如果會話數據還沒有寫入數據庫,PHP如何比較$_SESSION['username']
到$username
?會話數據寫入數據庫時,是否將$_SESSION['username']
存儲在服務器內存中,直到腳本結束爲止?
謝謝你的時間。
如果你這樣做是偶然還是不不知道,但你的第一行,在報價包$用戶名是不必要的。 – ryeguy 2009-10-06 20:31:10
哦,是的,這是一個意外。 – lanmind 2009-10-06 20:47:52