2013-04-11 44 views
0

有沒有什麼辦法可以獲得用戶會話的持續時間?CakePHP(或只是PHP)獲取會話持續時間

如果用戶登錄,我可以保存初始時間。如果他退出,我可以得到最後的時間並計算會話的持續時間。

如果用戶沒有註銷並且會話剛到期會怎麼樣?有什麼方法可以知道這是否發生?

+0

「有沒有辦法知道,如果/當這種情況發生?」 ---如果只有你有一個自定義會話處理程序 – zerkms 2013-04-11 01:21:32

回答

2

無法知道會話是否仍處於活動狀態,所以最好的辦法是將SESSION_START_TIME保存在您的數據庫和每個請求日誌中LAST_REQUEST_TIME

這樣你就知道什麼時候開始以及會話的「可能」結束。

你也可以知道有多少活動的會話存在,現在,通過檢查與LAST_REQUEST_TIME<5minutes所有會話...所以它不是一個壞的解決方案。

+0

+1我只是想發佈相同的答案。我建議使用time()以Unix時間戳格式存儲所有時間。這使得使用php進行計算變得更容易。 – 2013-04-11 01:28:40

0

不,不是真的。 HTTP會話較少。人們誰真正想活躍用戶更細化的想法會經常使用某種心跳技術,創建一個持久連接或輪詢模擬它,使用AJAX或Flash影片,或WebSockets的。 ,

PHP會話真多一個機械的用於連接一些臨時服務器端存儲與特定的客戶端/瀏覽器實例,儘管暗示有些人可能會讀入名稱。