去下载几个PHP统计的看看吧.. 

解决方案 »

  1.   

    我觉得不能因为如果 一个用户10分钟不对,如何统计他?个人感觉,如果真想统计话,唯一能解决的,是考虑动态cooke,
    这样用户的每个动作都能记录但逻辑上没实现过
      

  2.   


    确切地说可以统计,但是,如果每5分钟做一次这种统计的话,访问量稍微大一点,整个系统恐怕都会瘫痪。进入到哪里?每个访问都要判断的话,多少服务器并联都不够用
    统计,最普遍的方法如下:
    1.通过访问日志来判断
     一次性的把访问数据以日志的形势保存,每隔一段时间(如每天凌晨),服务器负担最轻的时候做一次统计,归总到数据库。
     保存日至的形式可以是文本,可以用log4php、pear log、zend log等等函数库;有条件的话也可以用Mysql,但是桌面引擎必须是heep。
    2.通过外部服务判断
     例如Google Analytics,功能非常多。
     http://www.google.com/analytics
     缺点是无法确定网站内部数据库的相关信息,如会员信息
      

  3.   

    可以用一个表来完成。
    online表:
    oid(online表主键),mid(用户id),jointime(加入时间),leavetime(离开时间) 用户进入->判断online表选择max(leavetime),如果比当前时间>5min 就新插入
    否则更新leavetime为当前时间
    这是按你上面的意思改了,有一个问题就是你这样统计的登录次数是不正确的,如果5min之内你的用户登录两次或是多次的话,你只当作一次来算了
      

  4.   

    不是说5分钟做一次统计
    是说每5分钟更新他的状态,就相当于把session存到数据表里了
      

  5.   

    正解不过这种东西分析日志更划算也更精确 反正那个东西用不用都有 不用白不用 不会给系统增加额外的负担
    说实话 如果不是有特殊的需要 GOOGLE 统计分析更好
      

  6.   

    分析访问日志的效果是最精确的
    当然,Apache的日志和程序的日志可以分开统计
      

  7.   

    onbeforeunload函数,能够捕捉,但是浏览器刷新,前进,后退都会提示,这很麻烦.
      

  8.   


    1.用javascript可以捕捉到浏览器页面关闭的时间,但是无法判断浏览器关闭的时间,更无法知道session的断开时间
    2.HTTP协议根本就没有实际的session概念,所谓的连接也都是虚拟的,判断在线时间同样是虚拟的,只是判断在同一个IP在某一时间段内是否有访问。
      HTTP服务器与客户端的实际在线时间根本就判断不出来!
    如果是统计HTTP访问的话,Google Analytics完全可以满足大多数商业要求。
      

  9.   

    去下载几个PHP统计的看看吧.. 
      

  10.   

    个人感觉,如果真想统计话,唯一能解决的,是考虑动态cooke, 
    这样用户的每个动作都能记录 但逻辑上没实现过