解决方案 »

  1.   

    无解!
    http://bbs.csdn.net/topics/350109096
      

  2.   

    刚看错问题回答错了。
    问的是php,我不会。
    但是会java的,说不定给能你点思路!
    你说的其实是单点登录!java可以用静态map实现
    1、所有在线用户存入静态map中,用户名作为key,操作时间作为value
    2、过滤器中刷新静态map,更新用户的操作时间
    3、后台起个定时器,每秒(自己配)扫描map,根据map中的时间与当前时间做判断,超过阈值(自己配或session失效时间),就可以认为该用户已经断开了,从map中移除该用户
    4、页面的判断就很简单,登录时,检查该用户在map中是否存在,否 ? 登录 : 提示已登录
      

  3.   

    php中有没有监听器?java中实现是很好办的,用监听器,就可以很容易实现,这个就是单点登陆。
      

  4.   

    http://www.2cto.com/kf/201201/117069.html  百度搜的,可以看看
      

  5.   

    这个简单,是后台设定问题。会员表增加一个int类型的字段,online,值设为0和1;当会员登录时,检测online,如果为0(没有人登录)就登上去,online值改为1;当退出或者长期不活动时,online又重新改为0。这就解决了。
      

  6.   

    这个你可以去找php会员在线的程序,改改就可以了。
      

  7.   

    可以在表里添加一个最后活动时间字段,判断超过N分钟后就算离线,可以登陆。
    因为一个用户进入网站后,肯定会不定时刷新页面,每次有交互都更新最后活动时间。这样就可以不管你非法不非法退出,哪怕你登陆了长时不操作也会强迫退出,跟session超时一样原理。
      

  8.   


    这个思路之前也考虑过,假如session的超时时间我设置为10分钟,那么最坏的情况下可能需要等待10分钟才能登陆系统...
      

  9.   


    你好,假如我刚登进系统,不小心关闭了浏览器,那么我是否要等待session超时之后才能再次登系统?
      

  10.   


    细问一下,最后一个登陆后,怎么是之前的失效?重新设置session?
      

  11.   

    服务器怎么知道访问者是谁?因为访问者提供了一个凭据(唯一的)
    通过这个凭据 你可以获取相关的访问者的 信息(包括身份信息)(这个凭据基本是在类似session的方式中实现的 这个不是重点)那么 
    假定 用户访问的时候 凭据  映射  用户信息
    现在禁止多点同时登录 要另外 在加一个映射   用户信息 包含当前 有效凭据
    登录: 初始化新的凭据  映射用户信息  用户信息 映射当前新的凭据
    访问 :一个凭据 映射的 用户信息 中包含的 有效凭据 不等于  这个凭据  那么 证明 这个用户 已经被 从其他位置踢出去了差不多这个概念
      

  12.   

    凭据[任意个] ---》  userkey[唯一]userkey---》用户信息用户信息:{
        包含 当前最新的凭据

    userkey 是唯一的   通过userkey 可以获取用户信息
    同一个用户的用户凭据可以有无数(每次登录产生一个) 指向该用户唯一的 userkey但是 userkey中包含的 用户凭据  可以验证当前的 凭据是否有效
      

  13.   


    你好,假如我刚登进系统,不小心关闭了浏览器,那么我是否要等待session超时之后才能再次登系统?这个分为两种情况,一种是同台电脑同个浏览器,监测到session存在,自动就登录了。另一种是你不小心关了,然后跑到另外一台电脑,或者同台电脑不同浏览器,这样监测不到session,但数据库其实还是在线状态。这时候就有时差了。这个是没有办法的事情。你唯一要做的,就是修改好定时刷新时间,比如改为1分钟监测一次或者30秒监测异地,这个时间就合适一些了.这样频繁地监测,对服务器要求较高,但是还是可行的。
      

  14.   


    多谢你的回复,现在我通过数据库和设置小一些的session时间来暂时解决(没找到更合适的方法)
      

  15.   


    多谢你的回复,现在我通过数据库和设置小一些的session时间来暂时解决(没找到更合适的方法)
      

  16.   


    你好,假如我刚登进系统,不小心关闭了浏览器,那么我是否要等待session超时之后才能再次登系统?这个分为两种情况,一种是同台电脑同个浏览器,监测到session存在,自动就登录了。另一种是你不小心关了,然后跑到另外一台电脑,或者同台电脑不同浏览器,这样监测不到session,但数据库其实还是在线状态。这时候就有时差了。这个是没有办法的事情。你唯一要做的,就是修改好定时刷新时间,比如改为1分钟监测一次或者30秒监测异地,这个时间就合适一些了.这样频繁地监测,对服务器要求较高,但是还是可行的。多谢你的回复,现在我通过数据库和设置小一些的session时间来暂时解决(没找到更合适的方法)
    你头像蛮好看的,:-)