由于 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。