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

发布于 2025-01-03 09:23:20 字数 557 浏览 0 评论 0原文

我有一个关于“如何处理在线用户”系列的小问题...

介绍:我使用 MySQL 来保存在线用户,当然,当他们登录时,一切正常太棒了..当他们注销时,我删除了“online_users”表中的行。

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

第一个解决方案:我决定检查,每次有人登录时,是否有一行,用户 ID 在“online_user”中,以进行更新查询,否则我执行插入查询。

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

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

我认为我可以将 HTML5 与 localstorage 一起使用,但并非每个浏览器都支持它...

在这种情况下我应该做什么?

感谢您的每一个答案。

I have a little question about "how can i handle user when they are online" series...

The intro : I use MySQL for saving the online users, when they are logged of course, and everything works great.. when they logout i delete the row in "online_users" table.

The problem : When someone clear the browser data the $_SESSION[] results empty and the user is not logged in, of course, BUT in my Database i'm still having the row for that user, and it means that for my datase he is online .. and that is not good you know.

First solution : I decide to check, every time someone made a login, if there's a row, with the userID in "online_user", to make an Update QUERY, else i do an Insert QUERY.

But i think this is not the best solution, because it means that i have some garbage row in "online_users" until they remake the login...

Can some one tell me if there's another great solution for this problem?

I think i can use HTML5 with localstorage but not every browser support it...

What should i do in this case?

Thanks for every answers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眉黛浅 2025-01-10 09:23:20

这个问题已经被回答了数百万次:在在线用户表中有一个最后的活动字段,并删除最后一次活动早于 15 分钟前的行

It has been answered for million times: have a last activity field in your online users table and delete the rows with last activity older than 15 minutes ago

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文