PHP如何检测会话已超时?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP如何检测会话已超时?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道 PHP如何检测特定会话已超时.

详细说明:我正在使用认的(基于文件的)会话处理程序,具有认的会话生存等等. PHP.ini中的所有内容都是认的.

如果现在启动了一个会话,那么如果有任何超时会话,PHP会进行检查(取决于非session.gc_divisor和session.gc_PRobabilITy).但是从哪里获取PHP会话的最后一个会话访问时间来检查?

会话文件本身仅包含工作负载,例如X | I:1;对于$_SESSION [‘x’] = 1;,因此没有关于上次会话访问时间的信息.

我认为没有与会话开始时间相关的内存信息,因为在完整服务器重启后会话仍在工作.

那么,PHP从哪里获取信息?它是否比较会话文件的mtime / ctime?

PHP认会话处理程序使用serialize()将$_SESSION数据存储在一个文件中,该文件位于session.save_path指定的目录中.通常,文件名看起来像$filename =’sess_’. SESSION_ID().

由于它只是一个文件,因此PHP可以使用文件的mtime(上次修改时间)来确定哪些会话文件是陈旧的.基本上它会抓取mtime超过session.gc_maxlifetime值的所有会话文件并取消它们的链接.正如您所说,清除发生的概率由session.gc_ * ini变量控制.

现在,如果您使用session_set_save_handler()创建自己的会话处理程序,这就完全不在窗口中,您现在可以控制会话的存储和清理方式,但这确实解释了认行为.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP如何检测会话已超时?全部内容,希望文章能够帮你解决PHP如何检测会话已超时?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。