我想在会话被销毁后诱导一个功能(即用户关闭浏览器)。此函数会将我的数据库中的值从true更改为false。这可能吗?
答案 0 :(得分:0)
我猜你想弄清楚一个用户是否在线(或者类似的东西?)。“知道”(读取:猜测)会话已经死亡的唯一方法是存储时间用户上次处于活动状态,然后将该时间与当前时间进行比较。然后,根据您的需要,您可以决定 假设 ,即30分钟内处于非活动状态的用户处于离线状态。
答案 1 :(得分:0)
只有这样才能使用Javascript检测关闭并使用Ajax请求(例如使用XMLHttpRequest
)到PHP页面(处理注销部分)。
有关结束部分的更多信息,请参阅Browser/tab close detection using javascript (or any other language)。
答案 2 :(得分:0)
我建议您在数据库中注册用户的最后一项活动,这样就可以100%准确。 然后通过将注册日期与当前时间进行比较,您可以决定用户何时处于活动状态。
如果你真的想知道用户是否还在你的页面上,你也可以做点什么,但你应该避免它: 在客户端,创建一个javascript循环,例如每分钟,告诉您的服务器客户端仍在那里。当客户端关闭他的页面时,循环将不会进行任何新的查询。