2011-07-18 77 views
0

在我的一個項目中,我用sessionId在數據庫中存儲臨時數據,如果它的sessionId沒有被使用,我必須刪除它們,有沒有簡單的方法來檢查會話ID是否正在使用?檢查PHP SessionID是否正在使用?

+1

爲什麼不將數據存儲在會話中(會話死亡時會自動清除)? – Quentin

+0

或者如果你真的想使用數據庫 - 使用臨時表爲 – k102

+0

可能的重複[檢查PHP會話ID是否正在使用](http://stackoverflow.com/questions/6206929/check-if-php-session-id -is-in-in) – hakre

回答

1

存儲上次訪問的時間戳,並刪除那些時間比當前時間早X分鐘的行。

1

可以命名與會話名稱([字符串$名稱])會話,

例如:session_name('myname')

,然後只檢查是否有與SESSION_ID該名稱的會話ID([字符串$ ID]),

例如:

if(session_id('myname') != "") 
     echo session_id('myname'); 
     else 
     //your code here 
0

有一個簡單的方法來檢查,如果會話ID我正在使用?

如果您使用默認會話處理程序,則檢查會話文件是否存在並且自time() - session_cache_expire()以來已被修改。

但是更好的解決方案是使用數據庫綁定的會話處理程序。當試圖從會話外部查看會話數據時,這更加靈活,您可以只進行簡單的連接來查找匹配的數據,但解決問題的正確方法是在會話處理程序中實現會話管理代碼(即當會話被刪除時刪除數據)!

+0

非常感謝你的答案,我有好主意,非常感謝你:) –