只是一个基本问题,如果您在用户访问主页面时打开会话并存储会话ID。该用户何时返回说另一天/时间并且ID不同?
答案 0 :(得分:1)
这取决于PHP的配置方式。特别是这些设置控制垃圾收集器“擦除”php会话ID的频率:
http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
session.gc_maxlifetime指定之后的秒数 数据将被视为“垃圾”并可能被清理干净。垃圾 会话开始时可能会收集(取决于 session.gc_probability and session.gc_divisor)。
http://php.net/manual/en/session.configuration.php#ini.session.gc-divisor
session.gc_divisor加上session.gc_probability定义了 gc(垃圾收集)过程开始的概率 每个会话初始化。概率通过使用来计算 gc_probability / gc_divisor,例如1/100意味着有1%的可能性 GC进程在每个请求时启动。 session.gc_divisor默认为 100。
http://php.net/manual/en/session.configuration.php#ini.session.gc-probability
session.gc_probability与session.gc_divisor一起使用 管理gc(垃圾收集)例程的概率 开始。默认为1.有关详细信息,请参阅session.gc_divisor。
据我所知,默认的php session.gc_maxlifetime
是1440秒(24分钟)。您在网站中访问次数越多,这些统计信息的“最准确”就越多,因为所有这些算法都会更频繁地运行。
一个棘手的边缘案例:如果你启动一个会话,然后永远不会访问你的网站,垃圾收集器算法永远不会运行,因此会话永远不会过期!如果你能理解这一点,我想你已经理解了这个答案。