原来的session等time out,但是用户同时也可以用一个新的session登陆,并不影响。在用户那层看来,死机,停电,和关掉浏览器重开的效果是一样的

解决方案 »

  1.   

    这样处理吧,
    你把session 的时间设置的短一些,比如3秒,
    然后让每一个页面每2.3秒发送一个简单请求。
    :)
    勉强处理你想要的情况。
      

  2.   

    To: spiritsl(梦雨心蓝) 这不是办法哦
      

  3.   

    感觉 rttw(rttw) 说的有道理。
      

  4.   

    你不会不用SESSION,在数据库中加一个表,叫onlineuser
      

  5.   

    "你不会不用SESSION,在数据库中加一个表,叫onlineuser"这种方法是不可行的,因为如果断电或者死机,你就并不知道用户已经离开.
    spiritsl(梦雨心蓝) 说的对,如果想解决,现在我能想到的,就这么一种方法.目前为止,还没有找到其他的方法解决.
      

  6.   

    不如在用户第二次登陆的时候就把第一次的session清除;只不过要给用户一个提示.
      

  7.   

    如果用户登陆过,再次登陆就把前次的session清除。如果是用户非法退出,那清除就清除了。如果用户并非非法退出 。那为了控制只能一个登陆,第一个用户就session消失了。给他一个提示。但是这样是不好的。本来应该先入为主的。
      

  8.   

    rttw(rttw) zhaoqiubo(赵小刀)等老兄说的都有道理,用户第二次登录就将前次的session清除,就像qq一样。只管最近一次的登录,如果存在同一用户两次登录就给出提示,告诉他“您已经登录,这次登录将清除前一次的登录。”!
      

  9.   

    另:用spiritsl(梦雨心蓝);你可以在后台启用一个守护线程,在超时的时间内,给客户端发送响应,或者让客户端发送请求;这样如果不非法退出session就不消失.一旦非法退出了.因为你超时的时间设置的比较短,那么就会超时.呵呵...这个方法比较好.
      

  10.   

    请问一下,怎么用session来判定是不是重登录啊?!
      

  11.   

    不好意思,最近上CSDN比较少,以前也没有仔细阅读过CSDN的手册还想问下信誉分与什么相关?为什么我的分给扣了?
      

  12.   

    我现在也遇到这个问题,我是加了一个onlineuser来解决的,但听你们一说,我也觉得不对。
    我的方法是 
    1。加入一个onlineuser表,用户登录时,把用户ID写进去
    2。如果用户非法退出,我在登录页面设了一个注销键,用户输入用户名和密码,按注销,则清空该用户在onlineuser中的记录。
    但是如果本来这个用户在线,另一个人用“注销”清空了他在线的记录,可那个人的session还是存在的。还是没有起到防止重登录的问题。如何在清空了他在线记录的时候清空那个人的session?