当会话在 php 中结束时如何执行某些操作


How to do something when session ends in php

我有一个关于学校项目的问题。当某人的会话结束时,我该如何执行操作。例如,我想删除一个文件,该文件显示用户在其会话结束时已登录。如果他关闭浏览器或暂时不做任何请求?

没有办法直接跟踪这一点。但是,您可以使用数据库并在用户上次加载页面时将其存储在其中,然后在 X 分钟内运行一个 cron 作业,以检查哪些用户在过去 Y 分钟内没有执行任何操作。

可以通过编写自定义会话处理程序来实现此目的。

在这个网站上,你会找到一个正确的解释:

http://phpmaster.com/writing-custom-session-handlers/

但是,请注意,"垃圾收集"(根据需要清理文件)不会在会话关闭后直接发生!

PHP

使用一个设置"session.gc_probability",表示每 XXX 个请求一次,PHP 将查找旧的/关闭的会话并开始进行垃圾收集

http://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability