我似乎无法在互联网上找到明确的答案,所以我在这里问。
当在.php脚本中使用session_start();
并保存一些值时,会话何时结束?那么这些价值什么时候不能再次获得呢?
我发现刷新页面或停止会话代码会停止它,并且可能的超时也会停止会话。但是如果离开网站并在一分钟后返回呢?关闭浏览器?
至于最后一个,在移动设备上,“关闭浏览器”意味着什么?关闭标签甚至最小化网站?
答案 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)
有两件事可以有效地结束会议:
session.gc_maxlifetime
中定义)没有收到来自浏览器的会话会话cookie的请求时,它会清理会话数据。