在不修改php.ini 的情況下延長PHP 中的會話超時
概述
修改php.ini 檔案並不總是可行,尤其是在共享主機中環境。本文探討了另一種僅使用 PHP 程式碼來延長 PHP 會話逾時的方法。
寬鬆的環境
如果精確的會話過期時間並不重要,可以設定一個下限使用以下步驟進行會話持續時間:
- 配置伺服器以將會話資料保留至少所需的逾時時間: ini_set('session.gc_maxlifetime', timeoutInSeconds).
- 使用 session_set_cookie_params(timeoutInSeconds) 指示客戶端在相同的逾時後忘記其會話 ID。
此方法建立了最小和軟最大會話
嚴格環境
對於需要精確會話過期的場景,需要自訂邏輯:
- 將最大不活動時間(discard_after) 儲存為會話資料。
- 在每個腳本開始時檢查當前時間是否超過discard_after。如果是這樣,則終止目前會話並開始新的會話。
- 在每次會話使用後使用當前時間加上所需的超時來更新discard_after。
這種方法確保了嚴格的上限會話不活動。
會話 ID 持久性
雖然上述方法著重於延長會話逾時,考慮會話 ID 持久性很重要。如果會話 ID 很重要,則可能需要在需要時使用 session_regenerate_id() 重新產生它們。
以上是如何在不編輯 php.ini 的情況下延長 PHP 會話逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!