php同个用户同时只能登陆一个, 后登陆者踢掉前登陆者

通常用户登陆,如果没有特别的限定, 同一个用户可以同时登陆, 今天搞了一个东西限定一个用户不能同时登陆到一个系统上, 后登陆者会把前面登陆的踢出来.(有点像QQ,同个帐号不能在多个地方同时在线, 后面登陆成功后就把前面登陆的掉线)

SQL : 两张表,一张是用户信息,另一张用来保存session

数据表 session 以session_id 为主键, 这个主键是 userid + user name + user login time 的 md5值算出来的. 每次用户登陆的时候就会像session表里插入一条,同时以userid username为条件查询旧的session记录并且删除他,所以当页面判断当前用户是否有效时,是通过$_SESSION数组里面保存在session_id值和数据库里取出来的session_id进行比较, 旧的session_id 在此用户第2次登陆时已经被删除,因此找不到,从而被退出系统.

代码部分

 

weinxin
我的微信
把最实用的经验,分享给最需要的读者,希望每一位来访的朋友都能有所收获!
avatar

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

Replies to:2   Visitors  2   Admin  0

    • avatar 楚狂人 来自天朝的朋友 谷歌浏览器 Windows 7 山东省潍坊市 联通 1

      佩服博主的钻研精神

      • avatar 绿软库 来自天朝的朋友 谷歌浏览器 Windows 7 福建省厦门市 电信 0

        这个刚好适用于账号禁止多人登录