我有一个有几百页的网站。大多数页面顶部没有session_start()。我在index.php页面上有它,我需要一些会话变量的信息。但是,如果用户导航到没有session_start()的页面,然后返回index.php页面,则会话不再处于活动状态。它是否正确?我是否需要在每个页面上保持活动状态?
答案 0 :(得分:3)
会话activity
由您的代码最后一次访问会话数据确定(字面意思 - 您上次调用session_start()
时)。
如果自上次访问以来经过的时间超过session.gc_maxlifetime
,则由垃圾收集器收集(有一定概率)。
所以 - 拥有一个没有session_start()
的页面不会明确地“终止”它,但不会在一段时间内访问会话数据 - 会这样做。
答案 1 :(得分:0)
没有
这一切都基于存储在浏览器中的cookie。浏览器发送cookie,PHP使用它来加载会话数据。如果发送了cookie,但未使用session_start
启动会话,则数据仍然存在。 (通常存储在/tmp
某处。)