日期:2014-05-17  浏览次数:20711 次

关于登录登出记录数据的问题~~~急
我做一个登录验证的程序,要求是一个账号在登录期间不可以有其他人登录,我使用的是在数据库中创建一个字段,当点击登录后,该字段为1,当点击退出按钮登出后,该字段为0,在登录时,判断该字段如果为1则不允许登录。但是我没有办法捕捉到用户直接关闭浏览器、结束浏览器进程或者用户机器死机的情况。

百度上有人说使用onunload或者onbeforeunload事件来捕捉关闭浏览器,但是这种方法在刷新时也会触发,有找到了这种方法的增强版,即防止刷新的,但是对于多标签的浏览器或者基于IE内核的其他浏览器(除IE)都不能很好的实现,而且使用特殊方法关闭浏览器也有问题。所以这种方法基本PASS了

百度上还有人说使用session或者application记录信息,但是这两个方法在关闭浏览器的时候也不能立即出发,也得等待周期到了以后才能实现。

我无奈了~~~特来此请教各位大神~~能够赐予我一个可行的办法~~~我该怎么办啊

------解决方案--------------------
记录一个 online 表,或者再增加一个字段,用来记录用户标示(唯一标示,存放到 cookie 和数据库中)

当用户登陆成功,产生一个标示,然后再次登陆则校验该标示,如果标示不同,则不允许登陆,或通过安全问题等方式,强行登陆,退出则标示清除

当用户进行操作时,进行标示校验,如果标示不同,则自动踢出登陆状态