首页 > 代码库 > 有关在数据库中的 记录用户的登录状态

有关在数据库中的 记录用户的登录状态

当用户登录的时候,判断该用户是否等录了。用于处理 不让同一个账号在不同的时间,不同的IP上 进行重复登录 所进行的操作!

每当用户登录的时候,就记录用户的登录日志(用户的ID,登录时间,退出时间,IP)等。 

当你进行登录的时候,用户的登录状态为1,退出的时候 用户的登录状态为0, 当用户进行正常的登录、退出的时候,没有问题,用户登录日志也填上了。

但是要是用户非正常的退出呢?

那么用户登录的时候,这时数据库中 用户的登录状态 仍为1 ,那么用户就没有办法登录了。

故 我搜索了几天的数据,终于找到了一种方法, 抱歉 这个网址给忘记了!

所以 我想到的就是在USER 表中 又增加一个字段,为最后一次活动的时间, 当用户访问页面的时候,AJax  轮询,不断的去更新表中的这个时间(这样 对服务器的压力会很大!)

当用户非正常退出的时候,那么 user表中 这个时间为上次非正常退出的时间。 

那么用户再次登录的时候,判断当前时间 和 最后一次的活动时间的间隔 是不是在那个范围之内。 如果 当前时间 - 范围的时间  大于 最后一次活动的时间的话,则说明上次用户 异常退出了。 如果 当前时间 - 范围的时间 小于 最后一次活动的时间的话,表示用户已经登录 了,提示 用户已经登录了!

那么 就把 用户log 表中的 退出时间 更改为 最后一次活动的时间。   这样就处理 非正常的登录。  (我是个新手,但是 我乐于学习,当遇到问题,自己解决不了的时候,问问经验 比你时间长的同事,他们会给你一些思路,给你开阔思路。感谢 生活中能够帮助自己的人!)

有关在数据库中的 记录用户的登录状态