發表文章

目前顯示的是 8月, 2016的文章

PHP中,SESSION何時會消失?

只要使用者登入一次,如果 server 端永遠保存 session 的內容,那使用者不就永遠不用登入了。 但是....  事實上卻不是如此! 因為 session 並不是永遠都存在著 ,只要 session 一消失,程式讀不到 session 的內容,自然會再要求使用者登入。 session 有一個「生存期限」。那麼,session 在什麼情況下會消失呢? 關閉瀏覽器並重新開啟後,session 就會消失 session 生存期限到時後,session 自動消失 PHP 預設是將瀏覽器關閉並重新開啟後,session 就自行消失,也就是 session 的 lifetime 為 0。 其實我們可以自己設定 session 的生存期限,當生存期限到期時,session 就會自動消失,而不管瀏覽器是不是被關閉並重新開啟。 什麼場合需要重設 session 的生存期限呢?例如,我們希望使用者在 30 分鐘後重新登入,我們就可以設定 session 的生存期限為 10 分鐘。 要設定 session 的生存期限,只要修改 php.ini 設定即可: session.cookie_lifetime = 0 (default value in php7) 修改這個設定項目即可。session lifetime 的預設值為 0。也就是將瀏覽器關閉並重新開啟後 session 才消失。只要將這個值改成我們要的時間即可,單位是秒: session.cookie_lifetime = 1800 (s) 設定 session 在 1800 秒後自動消失。