2014-01-27 78 views
0

我試圖代碼的PHP自動會話超時功能,目前,這是我一直inteligently到期會話自動

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1200)) { 
    // last request was more than 20 minutes ago 
    // destroy session data in storage 
} 
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp 

這種技術依賴於用戶加載頁面,他被告知他的到期之前我需要檢查頁面加載。

我需要一個過期的天氣用戶加載頁面或不。這是因爲會話過期時會通知登錄到該站點的其他用戶,並將數據記錄在數據庫中以供進一步使用。

回答

1

這是一個相當複雜的話題,但您可以管理實現會話處理接口和數據庫處理程序。

  1. 檢查的session.gc_maxlifetime和session.cookie_lifetime在PHP配置

    這是關於會話設置一個很好的文章:How do I expire a PHP session after 30 minutes?

  2. 創建這些實施SessionHandlerInterface和一下session_set_save_handler()數據庫層方法。

    • SessionHandlerInterface :: close - 關閉會話
    • SessionHandlerInterface ::摧毀 - 銷燬會話
    • SessionHandlerInterface :: GC - 清理舊會話
    • SessionHandlerInterface ::開 - 初始化會話
    • SessionHandlerInterface :: read - 讀會話數據
    • SessionHandlerInterface :: write - 寫會話數據

教程: http://www.wikihow.com/Create-a-Secure-Session-Managment-System-in-PHP-and-MySQL

最後,你可以查詢數據庫隨時離線和在線用戶獲得。