PHP 在 session 过期时做一些事情

标签 php

假设用户在我的网站上做了一些事情,例如上传了一些图片或其他内容,然后他没有注销就离开了,再也没有回来,或者假设他几个月后又回来了。

所以我的问题是,是否有某种方法可以在 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/

相关文章:

php - 使用 javascript 时将函数值传递给输入 id

php - DateTime::createFromFormat 未按预期工作

php - PHP 中的自动 CSS 版本控制?

php - 根据特定标准对数组中的列求和

php - 在 Laravel 的 artisan 队列 :listen 中捕获 ProcessTimedOutException

php - 使用PHP从IOS设备发送的格式化电子邮件中获取嵌入式电子邮件附件

php - 使用 coma(,) 通过复选框 php my sl 从表中过滤条目

php - jQuery Time ago 来自时间戳?

php - 根据动态数字或从 foreach 循环生成的元素计算宽度

php - 如何从 Google PHP API 负载获取额外的范围信息?