2014-09-19 19 views
0

如果我在谷歌瀏覽器上打開了我的網站標籤,並且其他標籤打開,那麼如果關閉我的網站標籤頁,會話不會破壞。要銷燬會話,我需要關閉整個瀏覽器,包括所有標籤。無論如何,當他們僅關閉網站的標籤而不是整個瀏覽器時,我可以登錄用戶嗎? 我正在使用codeIgniter。和配置設置如下我的瀏覽器關閉了網站的標籤後,php會話沒有被破壞?

$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 0; 
$config['sess_expire_on_close'] = TRUE; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_use_database'] = FALSE; 
$config['sess_table_name']  = 'ci_sessions'; 
$config['sess_match_ip']  = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 
+0

如果註銷對您的應用程序至關重要,則應該放置註銷按鈕。 – Sharky 2014-09-19 06:59:27

+0

我有一個註銷按鈕,但我想即使用戶不按下注銷按鈕並關閉該網站我希望他們註銷 – user1906399 2014-09-19 07:13:02

+0

點擊鏈接並關閉標籤,打開一個新標籤並手動輸入頁面的URL。在這兩種情況下,沒有固有的「連通性喪失」或任何此類事情。選項卡關閉時結束會話是完全武斷的決定;瀏覽器不會在這個決定中分享你的意見。換句話說:它大多不可能[可靠]。 – deceze 2014-09-19 07:28:06

回答

0

PHP會在24分鐘不活動後自動終止會話。 (糾正我,如果這不是真的,但我認爲如此)如果這不是你想要的,你也可以改變過期時間非常短,並通過ajax檢查每分鐘左右。

您是否將會話數據保存到數據庫?你爲什麼不寫一個自動刪除過期會話的php腳本。你可以用cronjob啓動它。

+0

您可以配置會話何時失效。 24分鐘不硬編碼或任何東西。 – deceze 2014-09-19 07:51:38

+0

是的,我知道你可以配置它。我的意思是默認的會話超時(我相信)設置爲1440秒(24分鐘) – 2014-09-19 07:53:44

相關問題