我想在會話超時前5分鐘運行一個函數。我的會話超時設置爲7,200在我的配置文件中。 CodeIgniter可以做到這一點嗎?如何獲取CodeIgniter中的會話超時?
回答
我認爲你在尋找這樣的事情:
$lastActivity = $this->session->userdata('last_activity');
$timeOut = time() - 7200 + 300; // now minus the the session
// timeout plus 5 minutes
if ($lastActivity <= $timeOut)
{
/* This runs on or after the "5 minutes before mark", but won't run if the
session has expired. After the session times out, based on the
$config['sess_expiration'] var, it's destroyed, as pointed out by
coolgeek. */
// ... Do some stuff
}
你可能會想運行這個鉤子(see the hook docs here)的內部,使得它運行在每個頁面加載之前或控制器運行後,這取決於你想要做什麼。
我不認爲這會工作......會話超時重置每個請求 – coolgeek 2011-03-20 14:51:19
coolgeek:我假設他想要的事情發生,如果用戶在他們的會話過期前5分鐘積極使用該網站。上面的代碼將做到這一點。 '$ beforeTime'與現在相對,但是'$ lastActivity'是基於會話內容的靜態的。看過CodeIgniter源代碼後(在/system/libraries/Session.php中),我發現你說得對,因爲我的if子句的第二部分沒有意義。 – 2011-03-20 16:26:35
謝謝! Gavin Anderegg,其實我正在開發一個購物門戶。我正在CodeIgniter中開發它。其實我想要!如果客戶處於待命狀態,我需要向我們網站的客戶展示「您將被註銷」。 – 2011-03-22 06:03:16
如果在超時期限內沒有請求(頁面命中),則會話超時。因此,一個php解決方案不會解決問題。
您需要在頁面中放置一個JavaScript計時器,該計時器將從請求頁面的時間開始倒計時,並在達到(超時 - 5分鐘)閾值後執行一些操作。
- 1. 會話超時後獲取會話ID
- 2. Codeigniter會話超時消息
- 3. Codeigniter中的會話超時重定向
- 4. 如何在codeigniter中同時獲取所有函數的會話?
- 5. 如何通過node.js獲取codeigniter會話
- 6. codeigniter會話類的安全超時值?
- 7. 在會話超時時無法獲取會話作用域bean
- 8. 會話獲取會話超時在MVC3時期
- 9. 如何使用SessionState獲取剩餘的會話超時?
- 10. 如何使用codeigniter中的會話獲取值?
- 11. JSF捕獲會話超時
- 12. 在會話超時後在當前頁面上獲取會話
- 13. 獲取時間留在會話中,直到超時
- 14. Yii2中的會話超時
- 15. Python中的會話超時
- 16. ASP.NET中的會話超時
- 17. JSF中的會話超時
- 18. 會話超時
- 19. 會話超時
- 20. 會話超時
- 21. 會話超時
- 22. 會話超時
- 23. 會話超時
- 24. 使用ajax獲取會話超時的剩餘時間
- 25. Codeigniter中的會話
- 26. 如何設置會話的超時值
- 27. 如何獲取FTL中的會話ID
- 28. 如何調用會話時會話超時
- 29. 超時會話的時間
- 30. 如何刪除codeigniter中的會話
提供更多的細節,很難說這裏到底需要什麼......你目前在做什麼?你的會議如何處理? – Jakub 2011-03-21 04:50:51