2

我正在创建一个要在 iPad 上使用的网络应用程序。一个重要功能是用户一次只能登录一次,并且一次只能在一台设备上登录。如果用户登录,我已经通过将数据库中的字段从 0 更新为 1 来实现这一点。

但是,如果用户忘记注销,则具有超时功能也很重要。我尝试在 PHP 中执行此操作,但它不合适,因为在脚本运行以注销用户之前必须刷新页面。

因此,我尝试使用 JavaScript 在客户端进行操作(30 分钟后进行简单的页面重定向),但我刚刚了解到,如果您在 iPad 上最小化 Safari,所有正在运行的脚本都会停止,因此用户可以轻松单击主屏幕而无需注销并且超时不起作用。

Sooo...我没有想法...有没有办法让 iPad 上的 Safari 中的人超时?

4

1 回答 1

3

使用您的服务器 CRONJOB 功能http://en.wikipedia.org/wiki/Cron并为 DB 范围的注销检查编写脚本。这样您就可以完全排除用户客户端的问题,您所要做的就是使用时间戳监控用户的操作,稍后您将使用您的脚本进行检查。

例如,如果您的用户表中有字段,则last_action_time每次重新加载站点或完成任何其他操作时都会更新该字段。只需存储time()到该字段中。对于 cronjob 脚本,只需检查所有具有last_action_time< time()-(60*30) 的用户,如果是这种情况,将其字段从 1 更新为 0。

于 2012-07-09T12:12:54.973 回答