由于 PHP 的会话控制在使用 session_set_cookie_params() 时无法正确处理会话生命周期,因此我们需要做一些操作才能在用户每次访问我们的网站时更改会话过期时间。所以问题在这里。
<?php
$lifetime=600;
session_set_cookie_params($lifetime);
session_start();
?>
这段代码在用户回到我们的网站或刷新页面时不会改变会话的生命周期。会话将在 $lifetime 秒后过期,无论用户请求页面多少次。所以我们只需覆盖会话 cookie,如下所示
<?php
$lifetime=600;
session_start();
setcookie(session_name(),session_id(),time()+$lifetime);
?>
现在我们有了相同的会话 cookie,生命周期设置为正确的值。