当用户清除浏览器数据时,处理存储在数据库表中的$ _SESSION

Cla*_*gio 0 php mysql session

我有一个小问题,"如何处理用户在线时"系列...

介绍:我使用MySQL来保存在线用户,当他们被记录时,一切都很好..当他们退出时我删除了"online_users"表中的行.

问题:当有人清除浏览器数据时,$ _SESSION []结果为空并且用户未登录,当然,但是在我的数据库中我仍然拥有该用户的行,这意味着对于我的数据库他在线..你知道这不好.

第一个解决方案:我决定检查,每次有人登录时,如果有一行,使用"online_user"中的userID,进行Update QUERY,否则我执行Insert QUERY.

但我认为这不是最好的解决方案,因为这意味着我在"online_users"中有一些垃圾行,直到他们重新登录...

有人可以告诉我这个问题是否有另一个很好的解决方案?

我想我可以将HTML5与localstorage一起使用,但不是每个浏览器都支持它...

在这种情况下我该怎么办?

谢谢你的每一个答案.

zer*_*kms 5

它已被回答了数百万次:在您的在线用户表中有一个最后一个活动字段,并删除上次活动超过15分钟前的行