sessionID+ip最好了。可以的话加cookie

解决方案 »

  1.   

    你可以获取他的实际的ip,地址啊。faq里面有帖子讲的。不过建议用sessionId就可以了
      

  2.   

    sessionID
    怎么得到?是唯一的吗?
      

  3.   

    唯一sessionID的取得方法:    session_id();
      

  4.   

    取不到客户端的mac地址 用sessionID 吧
      

  5.   

    对服务器的负担 大不大?
    是不是一但关掉浏览器后sessionid值又换了?
      

  6.   

    当所有浏览器关了sessionid值又换了,如果用户在我设定的时间内(比如5分钟)再登陆一次网站的话那么在线统计将会把此人统计成二人在线,明显会使统计人数增多,所以也不是很好的解决方法
      

  7.   

    用数据库怎么样?思路是这样的,表结构(onlineUser)如下:
    ---------------------------
    sessionid  |  newLoginTime|
    --------------------------当页面被加载时,首先 delete from onlineUser where (newLoginTime和当前时间相差大于指定时]间)。然后用用户的sessionid到数据库中查,查到执行update onlineUser set newLoginime=(Now) where sessionid=(sessionid),否则查入一条新的记录。然后select count(*) from onlineUser得到新的再线数目。缺点是,每加载一次页面,就要执行三条SQL语句(当然可以考虑三条语句同时一次执行),对数据库还是有一定的压力。
      

  8.   

    to honghe1(和良) 
    你的这个思路和我想的上面是致的,但这样当所有浏览器关了sessionid值又换了,如果用户在我设定的时间内(比如5分钟)再登陆一次网站的话那么在线统计将会把此人    统计成二人在线   ,明显会使统计人数增多,所以也不是很好的解决方法统计成二人在线,所以还不是唯一的方法
      

  9.   

    通过php调用javabean可以得到mac
      

  10.   

    主要是asp的Global.asa有时并不是像资料上介绍的那样能很好的工作,比如:session_end事件,资料介绍用户关闭浏览器和session超时就执行,问题是我关闭浏览器后要等很久(默认20分钟的超时时间)才执行,这算什么啊,我和大家也是一样的痛苦的.
      

  11.   

    看来用sessionid也不能唯一确定一个人,那还有其他什么方法可以唯一确定一个人呢.这样好吗,我们用Cookies.第一次来的兄弟没,查Request.Cookies("sessionid")<>"" ? if Request.Cookies("sessionid")="" then '我们的策略认为是新来的朋友
        
        sessionid=Session.SessionID
        response.Cookies("sessionID")=sessionid
        response.Cookies("sessionID").Expires=Now + 1 
        '一天后为空,不过具体可以用dateAdd()来得到5分钟过期时间,5分钟后这个Cookies为空
        response.Cookies("sessionID").Domain="www.yourWebSiteName.com"
        response.Cookies("sessionID").path="/"    '这里加入上面的数据库插入操作else
       
       '认为在线,更新Cookies的生存期,这里重复上面的Cookies操作就是了   '加入上面的数据库更新在线时间操作,刷掉过期用户操作
       
    end if