如果记录IP行不行?然后当下一用户登陆时测一下这个IP的用户是否在线,这样行吗?

解决方案 »

  1.   

    楼上几位讨论了一个问题的两个方面,而这两个方面是冲突的。
    现以断线或停电的情况来作一讨论:
    1、在访问需要检测用户登录情况的程序中,检查或设置一下其他用户的在线情况应该无可非议吧?
    2、情况一,已登录但断线或停电,当有其他用户请求时。此时多半要超过预定间隔,将其视为退出并不为过。
    3、情况二,已登录但断线且已恢复。由于浏览器尚未关闭,所以session继续有效,尽管如二可能已被视为退出。既然session仍然有效,自然仍可延续。但若有同名用户已登录,则可视为无效。
    4、情况三,已登录但停电。既然停电,来电后自然需要重起浏览器。就如未登录一般。一般网站为展示技术含量都显式的将在线人数置于页面上(隐式的调用也无妨),所以并不在乎处理用户在线状态所需的开销(尽管是很小的)。更何况这个处理可以嵌入session或计数器。
      

  2.   

    兄弟们,别想得那么多,那么复杂。当第一个人登陆了。在数据库里记录他的登陆状态true,登陆时间。如果他正常的推出了,一切都好办。。如果没有正常推出。。那么判断他最后一次登陆的时间和现在时间的间隔是多少。。如果小于拟设定的时间,就不让他登陆。window.alert("你已经登陆!!");  就这样了,这个问题就这么解决了,别想得那么多。。你可以把时间间隔摄制的小一些。。比如5分钟。。这样就没有什么问题了。。
    ----------------------------------------------------------------------
    简单才是美,平凡才是真。
      

  3.   

    up!
    1、首先是肯定的!最可靠的是设一个status字段来存贮登录状态,数据类型为整型;当某一用户登录时,写入1;当注消时,写入0。
    2、问题来了,如果该操作员忘了注消或网络问题,那不一直都在登录?所以,要让登录页面每隔x分钟将新时间写入另一字段times; 这下好办啦,当另一用户用相同帐号登录时先比较该用户最后刷新时间,如果距当前时间超过x分钟,就允许登录,否则就拒绝。
      

  4.   

    今天刚搞好了这个问题!我的程序要求是这样的,用户按退出键后下线可以正常登陆,没有正常退出,则判断用户是否正在活动!(五分钟)
    1\在记录用户登陆的表中加入online,onlinedate,onlinetime
    其中online记录用户在线或不在线(在线0,不在线1),onlinedate记录用户登陆日期,onlinetime记录用户登陆时间2\当用户登陆时首先判断用户是否在线,如果在线,就判断用户现在登陆的时间跟上次最后数据库时间是不是大于五分钟,如果是,就可以登陆,否则就不能登陆.(用户登陆成功,每一分钟写入一次当前时间进数据库!)因为用户没有登陆,所以数据库的时间也不会更新,所以当前时间减最后登陆时间就可以判断用户是否在线.
      

  5.   

    我有个取中的方案~
      就是在在线列表中加入一个字段,可以设定在一个时间段内用户是否操作过。
    是,则表明该用户在线。 置其值为1。 如果此用户5分钟没有操作。这时就设其值为0;
       如果用户非正常通出。 再次登陆时。 而这个值又为0,哪么允许登陆。 如果是用户超时,则session肯定是一样的。  哪么认为此用户在线,当此用户再次操作时,又设该值为1。
         呵呵~    大家说说怎么样
      

  6.   

    记录IP地址,一台机一个用户帐号,先来先注册(用数据库 记录对方的IP和帐号),后来的IP若使用相同帐号就location error page