上一篇:大陆同胞,你了解海外华人有多少
下一篇:十二星座简介(图)
PHP如何统计在线人数
米娅 2010年7月9日 15:41:25

         到网上查了一下,说,HTTP是无状态协议,就是服务器接受请求,建立连接,然后加载网页,载入完毕,对话结束,所以无法真正统计出在线人数,只能统计出在某个时间间隔内,比如半个小时内,访问过的人数,算并发访问的人数。

        实现原理可以是,把每次访问的时间、IP记录下来,放到一个数据库表内,然后,读最近一个时间段内的不同IP的记录数,就算在线人数。

        待续


代码
2楼 2010年7月10日 22:20:33 米娅

 < ? php
    /************************************
    功  能:统计在线人数
    参  数:$st_url,需要统计的页面网址
                  $time_slot:时间间隔(单位:秒)
    返回值:多维数组
    ***********************************/
    //--------------------
    #数据表:readers_online
    #rs_ip     varchar(32): IP地址, 为IPv6作准备
    #rs_url    varchar(20):页面url
    #rs_time   int(10)    :登陆时间
    #rs_username   varchar(20):用户名
    //--------------------

class OnlineReaders
{
    function rsonline($db, $pageurl, $time_slot, $lg_user)
    { 
 
        //当前时间和IP地址和用户
        $cur_time = time();
        $cur_ip   = $_SERVER['REMOTE_ADDR'];
 
        $rs_user=$lg_user==""? "anonymous" : $lg_user;
 
        //删除数据表中过期的信息和相同IP地址的数据
        $sql = "delete from readers_online where $cur_time - rs_time > $time_slot ";
        $sql.= "or rs_ip='".$cur_ip."'";
        mysql_query($sql);
 
        //插入新数据
        $sql = "insert into readers_online (rs_ip, rs_url, rs_time, rs_username) values(";
        $sql.= "'".$cur_ip."','".$pageurl."','".$cur_time."','".$rs_user."')";
        mysql_query($sql);
 
        //读出在线总人数和他们的用户名
        $sql   = "select * from readers_online ";
        $query = mysql_query($sql);
        $all_sum = mysql_num_rows($query);
        $rg_user_sum = 0;  //注册用户数量
        $visitors_sum = 0;  //访客数量
        while($r_visitors=mysql_fetch_object($query))
        {
          if($r_visitors->rs_username !='anonymous' )
          {
              $user_info[$rg_user_sum] = $r_visitors->rs_username;
              $rg_user_sum++;
          }
          else
          {
             $visitors_sum++;
          }
        }
        return array($all_sum,$visitors_sum,$user_info);
    }
 
}

? >   

第1页 共1页
相关链接
1. 北美华人买国际机票省钱秘籍(转载)
2. Drupal 7: 防止机器人注册
3. PHPBB 3: 反机器人设置
4. 在本网站发有价值原创贴,本人可代做广告条
5. 加拿大人到美国工作的TN签证
6. 感谢欺骗你的人,感谢给你陷阱的人
7. 如果没有强大的祖国,国外华人就会象犹太人那样走进集中营?
8. 被熟人连骗带坑差点吃官司教训总结篇
9. 上海人纪念乔布斯(图)
10. 多伦多机场接人停车等问题
11. 中国人血型的起源
12. 让很多成年人改变价值观和人生观的网传小学四年级奥数题答案(图)
13. 让很多成年人改变价值观和人生观的网传小学四年级奥数题(图)
14. 在eBay上卖东西(12):女人衣服的尺寸和大小(号码)转换
15. 人民大会堂的卫生间规格赶上美国国会的了(和老美聊天)
16. 如何看人下菜碟儿