什么时候php会话到期?

时间:2014-05-08 08:23:03

标签: php session login

我已经开始讨论这个问题,到目前为止我所知道的是,当浏览器关闭时会话被破坏,如果浏览器保持打开状态,会话会在一段固定的时间(例如24分钟)后自动过期。

但这24分钟的计数器何时开始?当服务器执行session_start()行?这个问题可能有点长,但请耐心等待。假设我有一个包含此代码的php页面:

<?php
      session_start();
?>

如果用户打开此页面并将其保持打开状态大约一小时,虽然页面仍处于打开状态,但会话是否仍会过期?如果我在我网站的每个页面的开头添加session_start()代码,那么每次用户打开网站的新页面时计数器都会重置为零吗?

基本上我想建立一个登录系统,当用户关闭网站或点击退出按钮时将其记录下来,只要他打开网站我就想让他登录,而不会自动退出24分钟或任何其他固定时间后。

1 个答案:

答案 0 :(得分:0)

首次创建会话时开始计时。在24分钟之后,它可能会或可能不会被垃圾收集器删除,因为它会随机启动(请参阅session.gc_ *指令)。 你想要做的是每N分钟重新生成一次会话(session_regenerate_id()),这样只要用户活动就不会过期。