【发布时间】:2010-09-19 19:56:49
【问题描述】:
当用户的会话超时发生时,我正在尝试注销用户。注销用户 - 在我的情况下 - 需要修改用户在数据库中的“在线”状态。
我在想我也许可以使用观察者模式来制作一些东西来监视用户会话的状态并在会话到期时触发回调——这将保留用户的名称,以便我们可以更新数据库。我不确定在会话方面从哪里开始。我可以将回调绑定到会话的超时吗?
这些东西是否内置在任何可用的 pear 或 zend 会话包中?我会尽我所能来实现这一目标!
更新 @ 16:33:
如果您有一个用户可以相互交互的系统(但他们只能与在线用户交互)怎么办?用户需要知道当前还有哪些其他用户在线。
如果我们只是在每次页面刷新时检查会话是否仍然处于活动状态,那么在超时后,用户将被发送到未登录的页面,但他们仍然在系统中列为在线。
这个方法很好,只是当我们超时会话时,我们会丢失有关用户的信息,这些信息可以用来注销他们。
更新@16:56:
正确的。谢谢。我同意……有点丑陋。我已经对服务器进行了一些缓慢的轮询,因此实现该方法非常容易。对于会话处理包来说,这似乎是一个非常有用的功能。 Zend 和 PEAR 都有会话包。
【问题讨论】:
标签: php session timeout observer-pattern