字體:  

Session lifetime 生存期限設定

nobody 發表於: 2011-7-16 22:56 來源: ADJ網路控股集團


大家可能會有一個疑問,那就是,只要使用者登入一次後,如果 server 端永遠保存 session 的內容,那使用者不就永遠不用登入了嗎?答案是:對的。

但是事實上卻不是如此,因為 session 並不是永遠都存在著,只要 session 一消失,程式讀不到 session 的內容,自然會再要求使用者登入。

也就是說,session 有一個「生存期限」,當生存期限過了之後,session 自然會消失。那麼,session 在什麼情況下會消失呢?當底下幾種情況發生時,session 就會消失:

1. 關閉瀏覽器並重新開啟後,session 就會消失
2. session 生存期限到時後,session 自動消失

PHP 預設是將瀏覽器關閉並重新開啟後,session 就自行消失,也就是 session 的 lifetime 為0。

其實我們可以自己設定 session 的生存期限,當生存期限到期時,session 就會自動消失,而不管瀏覽器是不是被關閉並重新開啟。

什麼場合需要重設 session 的生存期限呢?例如,我們希望使用者在 10 分鐘後重新登入,我們就可以設定 session 的生存期限為 10 分鐘。

要設定 session 的生存期限,只要修改 php.ini 設定即可:

session.cookie_lifetime   = 0修改這個設定項目即可。session lifetime 的預設值為 0,也就是將瀏覽器關閉並重新開啟後 session 才消失。只要將這個值改成我們要的時間即可,單位是秒:

session.cookie_lifetime   = 600設定 session 在 600 秒後自動消失。

From: Jollen