多人登陆同一账号问题

qq_36445015 2016-10-25 04:27:24
怎么实现同一账号 不能多人同时登陆。 如有代码请附上,非常感谢!
...全文
1003 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinjian555 2016-11-02
  • 打赏
  • 举报
回复
判断 phpsessionid 有无变化
lyjyyl 2016-11-01
  • 打赏
  • 举报
回复
后登录的把先前登录的踢出去。就能保证一个账号只有最后登录的在用。
zlongxielinhua 2016-10-26
  • 打赏
  • 举报
回复
每个账号是有一个唯一的id,使用这个id和session_id建立映射关系。比如账号id是12345,第一个人登陆时候的session_id是sess_1 则将这个session_id绑定到12345这个账号上。第2个人登陆时,session_id是sess_2, 如果允许第2个人踢掉第一个人则将12345这个id对应的session_id覆盖为sess_2,这样第一个人的session就失效了,需要重新登陆。 如果不允许第2个人进行登陆的话,则提示有人已经登陆了(第一个人的session没有失效。),需要等第1个人退出登陆,解除id(12345)与sess_1之间的关系。
wodebaobei12611 2016-10-26
  • 打赏
  • 举报
回复
给个思路吧: 给user表添加一条字段比如叫logininfo,用户登录时将用户的信息比如用户名,ip和登录过期时间经过可逆加密存入该字段中,同时存入cookie,以后用户每次操作都判断cookie是否存在,不存在就需要重新登录,若存在通过cookie从数据库中查改该用户信息,若不存在则提示登录,查找到后对密文进行解密,对解密后的信息进行核对,用户名和ip是否一样,是否超过登陆过期时间,若不符合,就提示重新登录。 不知该方法可不可行
chinaurls 2016-10-26
  • 打赏
  • 举报
回复
这个简单,很多人也说了用session,你在登录的时候登录时间存入session,如果第二个人同时登录这个帐号的时候登录时间肯定会发生变化,用户中心每个页面对数据库里面的登录时间和存入session的登录时间做对比,不一样的时候直接退出,这样的话第一个登录的人肯定会被退出帐号的
xuzuning 2016-10-25
  • 打赏
  • 举报
回复
使用同一账号,自然视为同一人(你总不能让他出示身份证吧) 我用电脑登录 CSDN,同时还用手机登录 CSDN,为什么就不允许呢?
u010455685 2016-10-25
  • 打赏
  • 举报
回复
同上
qq_34543448 2016-10-25
  • 打赏
  • 举报
回复
我的大概思路: 登陆表加两个字段,是否登录和登录时间,每次登录都判断是否登录字段。 第一次登录的时候当前账户把字段设置True,并写入登录时间 ,退出时设置成False. 相同账户再登录时判断这个值就可以了。 数据库写个计划任务,时间为你session的过期时间,如果登录时间超过session最大过期时间,把登录设置成False.

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧