由於 PHP 的 Session 控制在使用 session_set_cookie_params() 時無法正確處理 session 生命週期,我們需要採取一些措施,以便在使用者每次造訪我們的網站時變更 session 到期時間。所以,問題是這樣的。
<?php
$lifetime=600;
session_set_cookie_params($lifetime);
session_start();
?>
當使用者返回我們的網站或重新整理頁面時,此程式碼不會變更 session 的生命週期。無論使用者請求頁面多少次,session 都將在 $lifetime 秒後過期。因此,我們只需如下覆寫 session cookie
<?php
$lifetime=600;
session_start();
setcookie(session_name(),session_id(),time()+$lifetime);
?>
現在我們有了相同的 session cookie,且生命週期設定為正確的值。