如何使用Zend Framework检查登录的在线用户

Sum*_*osh 7 zend-framework zend-session

我想知道如何使用Zend Framework获取当前在线或在网站上进行活动会话的用户数量.

我尝试了通常的方式来读取会话保存路径,但它不能使用Zend.这里的任何人都可以建议我一个很好的方法来了解服务器上任何时刻有多少活动会话.

小智 2

您不能使用会话来执行此操作,您必须将在线用户存储在数据库中并显示所有活跃用户。注销时从数据库中删除/更新记录。

或者在您的用户表中放置一个标志,并在每次用户登录/注销时将标志更新为 y/n。

或类似的东西。

如果用户关闭浏览器而不注销,那么下次用户尝试登录时。您可以检查该用户以前的活动会话(如果有)?向用户提供一个窗口,表明上次注销不正确,并从该用户获取任何事件来更新时间,或者您可以要求用户输入后期会话的注销时间(估计),或者如果用户不感兴趣选择时间,您可以更新注销有注销时间。设置登录持续时间间隔。

这样想……

  • 这种方法的问题在于,并非所有用户每次离开网站时都会注销,他们可能只是关闭浏览器并离开。在这种情况下,我无法自动从数据库中删除这些会话。所以这个方法基本上是有缺陷的。 (4认同)
  • 不,这不是有缺陷的,您可以添加另一列“lastTimestamp”,并在每次检查他是否登录(即打开新页面)时更新它,因此,如果用户关闭他/她的浏览器,他将拥有旧的时间戳,因此您可以注销这些例如,人们通过每 30 分钟运行一次的 cron 自动执行 (3认同)