需要检查用户是否在指定时间之前登录

时间:2011-01-16 05:40:24

标签: php session

我有一个基于PHP的预约安排应用程序,要求某些用户在指定时间前15分钟登录。

如果用户忘记登录,则必须在cron作业的帮助下向他们发送电子邮件提醒。

我在数据库中包含一个标志,用于检查用户是否已登录。此标志在登录时打开,在用户手动注销时关闭。

如果用户的会话过期怎么办?我应该在cron作业中实现什么来考虑这个因素?

1 个答案:

答案 0 :(得分:1)

您必须实现自己的自定义会话处理程序(可能使用数据库)。 PHP的默认处理程序不会公开任何类型的监视/事件通知,以便您检测过期/垃圾回收会话。

COULD 使用外部进程手动浏览会话文件,但这有点活泼:会话可能已过期,而PHP垃圾收集器会在监视脚本执行之前访问它。

鉴于您在数据库中存储了“登录”标志,检查尚未登录的用户的cron作业是最简单的方法,但是作业的调度可能有些难看。如果您指定的时间基本上是随机的,您要么必须每分钟运行一次(cron支持的最短间隔),要么为每个事件安排一个单独的工作。对于较不粗略的调度点,您可以使用cron的通配符/定点语法,例如。 “* / 5,10,15,...... * * * *”