怎么实现同一账号 不能多人同时登陆。  如有代码请附上,非常感谢!

解决方案 »

  1.   

    我的大概思路:登陆表加两个字段,是否登录和登录时间,每次登录都判断是否登录字段。第一次登录的时候当前账户把字段设置True,并写入登录时间 ,退出时设置成False.相同账户再登录时判断这个值就可以了。数据库写个计划任务,时间为你session的过期时间,如果登录时间超过session最大过期时间,把登录设置成False.
      

  2.   

    使用同一账号,自然视为同一人(你总不能让他出示身份证吧)
    我用电脑登录 CSDN,同时还用手机登录 CSDN,为什么就不允许呢?
      

  3.   

    给个思路吧:
    给user表添加一条字段比如叫logininfo,用户登录时将用户的信息比如用户名,ip和登录过期时间经过可逆加密存入该字段中,同时存入cookie,以后用户每次操作都判断cookie是否存在,不存在就需要重新登录,若存在通过cookie从数据库中查改该用户信息,若不存在则提示登录,查找到后对密文进行解密,对解密后的信息进行核对,用户名和ip是否一样,是否超过登陆过期时间,若不符合,就提示重新登录。
    不知该方法可不可行
      

  4.   

    每个账号是有一个唯一的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之间的关系。
      

  5.   

    这个简单,很多人也说了用session,你在登录的时候登录时间存入session,如果第二个人同时登录这个帐号的时候登录时间肯定会发生变化,用户中心每个页面对数据库里面的登录时间和存入session的登录时间做对比,不一样的时候直接退出,这样的话第一个登录的人肯定会被退出帐号的
      

  6.   

    判断 phpsessionid 有无变化