PHP会话什么时候结束?

时间:2013-11-21 19:07:11

标签: php session

我似乎无法在互联网上找到明确的答案,所以我在这里问。

当在.php脚本中使用session_start();并保存一些值时,会话何时结束?那么这些价值什么时候不能再次获得呢?

我发现刷新页面或停止会话代码会停止它,并且可能的超时也会停止会话。但是如果离开网站并在一分钟后返回呢?关闭浏览器?

至于最后一个,在移动设备上,“关闭浏览器”意味着什么?关闭标签甚至最小化网站?

2 个答案:

答案 0 :(得分:5)

如果您的会话值未链接到任何cookie,则会在Windows浏览器关闭时结束会话。

如果您的会话变量来自cookie,则会话将在cookie文件中指定的时间结束。

在PHP中,会话使用类型为session的cookie。在服务器端,会话信息不断被删除。

要在php中设置cookie的生命周期,可以在session_start之前使用函数session_set_cookie_params:

session_set_cookie_params(3600,"/");
session_start();

例如,3600秒是1小时,2小时3600 * 2 = 7200。

但它是一个会话cookie,浏览器可以让它自己过期,如果你想保存更长的会话(比如记住登录),你需要保存服务器中的数据和客户端的标准cookie。

使用Cookie时离开网站不会破坏会话。

答案 1 :(得分:1)

有两件事可以有效地结束会议:

  1. 将其链接到浏览器的cookie被破坏。 PHP通常使用会话cookie。关闭浏览器时会删除这些内容。 浏览器,而不是标签。它们也可以手动删除。
  2. 当服务器在一段时间内(在session.gc_maxlifetime中定义)没有收到来自浏览器的会话会话cookie的请求时,它会清理会话数据。