PHP+;MYSQL,需要每n分钟更新一次注销时间(以DB为单位)

PHP+;MYSQL,需要每n分钟更新一次注销时间(以DB为单位),php,mysql,ajax,Php,Mysql,Ajax,当用户通过关闭浏览器或重新启动电脑注销时,如何在数据库中保存日志时间?如果用户没有实际单击注销按钮(您正在记录其注销时间),则应将注销时间设置为会话到期时间。为了使此方法更准确,请将会话的生存期缩短为几分钟。因此,在几分钟不活动后,会话将过期,您的注销时间将相对接近用户停止使用您的软件的时间。有关如何记录此信息,请参见下文。Cron作业或javascript实现是必需的 只要我的两分钱。。。可能是更好的方法,但在我看来,这种方法是最简单的 我用一种用户ping来管理它。我的web应用程序中的每个

当用户通过关闭浏览器或重新启动电脑注销时,如何在数据库中保存日志时间?

如果用户没有实际单击注销按钮(您正在记录其注销时间),则应将注销时间设置为会话到期时间。为了使此方法更准确,请将会话的生存期缩短为几分钟。因此,在几分钟不活动后,会话将过期,您的注销时间将相对接近用户停止使用您的软件的时间。有关如何记录此信息,请参见下文。Cron作业或javascript实现是必需的


只要我的两分钱。。。可能是更好的方法,但在我看来,这种方法是最简单的

我用一种用户ping来管理它。我的web应用程序中的每个页面都使用javascript,每分钟都会向某个php文件发出get请求。此文件标识用户并更新“我的用户”表中的最后一个活动时间戳。在服务器上,我制作了一个cronjob,它每2分钟触发一次,并检查usertable中是否有超过2分钟的最后一个活动时间戳。如果时间戳超过2分钟,您可以将用户标记为“已注销”。这样,用户可以在一个页面上花费很长时间,并且不会因为不活动而注销。如果他关闭浏览器或重新启动电脑,注销时间戳将由cronjob设置,非常精确


此解决方案运行良好,但使用javascript计时器。这不是很好,但使它的工作相当不错。如果您的页面allready使用了大量其他javascript,那么您可能应该使用其他解决方案。

“通过启动PC”,如何启动注销?“关闭服务器”是指关闭他们的浏览器吗?很抱歉,重新启动电脑并关闭浏览器会让他们感到抱歉。但要注意会话时间短——例如,在CMS中,用户可能会合法地编辑某个内容30分钟,然后单击“保存”,这会导致会话中断。