建立一个在线表,Sessionid,IP,用户名,登录时间,最后更新时间
登录从在线表判断是否已登录。

解决方案 »

  1.   

    简单做法在数据库设置一个flag标志位来判断用户登陆状况
      

  2.   

    数据库设置一个flag标志位来判断用户登陆状况
      

  3.   

    数据库设置一个flag标志位来判断用户登陆状况
    这个是一个最简单的做法
    还有一个用app....那个来写忘记怎么写那个了!
      

  4.   

    如果用数据库设置一个flag方法,
    当碰到如下情况时该分别怎么处理呢?
    1:使用注销按钮正常退出
    2:点击浏览器关闭按钮或者用Alt+F4退出
    3:非正常退出,比如客户端系统崩溃或突然死机
      

  5.   

    我的做法是同一id的时候,第二个人的登陆会把第一个人踢下线
    登陆的时候cookie和数据库都存储一个随机串
    这样第二个人登的时候会替换掉第一个人的
    随机串比较不一样就提示已在别处登陆,清除cookie
      

  6.   

    如果用数据库设置一个flag方法, 
    当碰到如下情况时该分别怎么处理呢? 
    1:使用注销按钮正常退出 
    2:点击浏览器关闭按钮或者用Alt+F4退出 
    3:非正常退出,比如客户端系统崩溃或突然死机
    ====================
    1、正常退出当然可以在退出代码中重置标志位
    2、关闭浏览器则在session过期时间到了后在session超时事件中重置标志位
    3、参考2,如果用户在session超时之前再次登录时判断一下用户IP,
    如果IP相同,可以考虑仍然让其登录。不采用客户端组件,没有什么彻底的好办法。
      

  7.   

    如果用数据库设置一个flag方法,  
    当碰到如下情况时该分别怎么处理呢?  
    1:使用注销按钮正常退出  
    2:点击浏览器关闭按钮或者用Alt+F4退出  
    3:非正常退出,比如客户端系统崩溃或突然死机
    ====================
    1、正常退出当然可以在退出代码中重置标志位
    2、关闭浏览器则在session过期时间到了后在session超时事件中重置标志位
    3、参考2,如果用户在session超时之前再次登录时判断一下用户IP,
    如果IP相同,可以考虑仍然让其登录。不采用客户端组件,没有什么彻底的好办法。
    ---------

    如果采用客户端组件的话,怎么采用呢?这方面客户端组件都有那些呢?
      

  8.   

    还有一个用app....那个来写忘记怎么写那个了!
    就是用这个
      

  9.   

    全局字典 
    用户名为键  在线id为值(用户登陆自动获得一个在线id) 
    2者不匹配强制登出....
      

  10.   

    数据库里建立一个表:
    Sessionid,IP,用户名,登录时间,最后更新时间用户登录时:
    1。检查表里有没有该用户名存在--〉如果不存在,表里写进去一条记录。
    2。如果存在,检查此刻时间与最后更新时间的差值,是否大于某超时值。
    3。如果存在,且未超时,用户登录失败。用户每次看页面时:
    1。检查表里有没有该用户名存在--〉如果存在,IP对否?
    2。如果不存在,用户未登录。用户正常退出:
    1。根据Session里的数据,删除表里那条记录。用户非正常退出:
    1。无法跟踪,下次用户登录,如果那时刻与最后更新时间的时间差,大于一特定超时值,用户可以登录注意:javascript里有这个事件:window.onunload
    1:使用注销按钮正常退出     
    2:点击浏览器关闭按钮或者用Alt+F4退出 
    这两种情况都可以触发window.onunload
      

  11.   

    window.onunload后可以使用Ajax跟服务器通信,可以成功
      

  12.   

    欢迎JAVA人士加入53633581群,大家在这里可以讨论技术问题!