PHP会话何时结束


When does a PHP session end?

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

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

我发现刷新页面或按代码停止会话会使其停止,可能的超时也会使会话停止。但是,离开网站,一分钟后返回该怎么办?然后关闭浏览器?

至于最后一个,在手机上,"关闭浏览器"是什么意思?关闭标签,甚至最小化网站?

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

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

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

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

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

对于ex,3600秒是一小时,对于2小时,3600*2=7200。

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

使用Cookie时离开网站不会中断会话。

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

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