2012-07-16 97 views
1

我对浏览器关闭问题有一些疑问。当浏览器关闭。如何在php中关闭浏览器时运行sqlk查询

我正在使用xcart.When用户登录网站和任何情况下浏览器将被关闭任何会话将被销毁..并且运行sql查询用户状态将脱机。

问候, 马尼什帕特尔

+0

可能重复[当浏览器关闭如何自动注销用户?](http://stackoverflow.com/questions/ 10116292 /如何在浏览器关闭时自动注销用户) – Quentin 2012-07-16 09:08:00

回答

1

更新用户状态的代码可以移动到一个包含文件,一些沿此线:

$time = date('Y-m-d H:i:s', strtotime('now -15 minutes')); 
$sql = "UPDATE users SET status = 'offline' WHERE last_activity < '{$time}'"; 

此类型可包括在网站上例如主页,并且与谁在线实际无关。

你会显然需要一列(时间戳会是一个很不错的),以记录他们的活动的

+0

这只有在流量稳定的情况下才有效。即使有太多它会过度写入数据库。使用['crontab'](http://linux.die.net/man/5/crontab)更可靠。 – Martin 2012-07-16 09:12:07

+0

他有多少交通并不重要,下一次有人访问它将更新数据库并将每个人都设置为离线。如果它是一个重负载的站点,使用crontab可能会更好,但如果不是,那么cron作业本身会导致额外的开销。永远不同的需求,永远不可能适合所有人。 – Dale 2012-07-16 09:15:48

+0

你假设读取数据库的唯一实体是网站,并且我确信每隔几分钟就有一个查询不会被认为是任何书籍中的“额外开销”;) – Martin 2012-07-16 09:17:41