假设用户在我的网站上做了一些事情,例如上传了一些图片或其他内容,然后他没有注销就离开了,再也没有回来,或者假设他几个月后又回来了。
所以我的问题是,是否有某种方法可以在 session 过期后删除他上传的文件,比如说 30 分钟后(请记住用户永远不会重新加载页面),这样就需要完全运行在服务器端完全没有用户干扰。
编辑 谢谢大家的精彩回答,它给了我很多好主意,我希望我能接受你们所有的回答:)
最佳答案
好问题!我的第一个想法是使用基于数据库的解决方案。如果您还没有这样做,您可以在表 sessions
中跟踪所有事件 session ,该表包含您可能需要的其他内容,包括 session_id
和 上次访问时间
。每次用户访问您的网站时,此条目都会更新:
UPDATE sessions WHERE session_id = "<current session id>" SET last_visited_time = NOW()
该机制的第二部分是一个 cronjob,它扫描 sessions
表以查找其 last_visisted_time
最近未更新的 session (无论您在什么时间间隔内更新) d like) 并删除该 session 的文件。
关于PHP 在 session 过期时做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11603197/