php统计在线人数的方法,我们之前介绍过一篇:
一个比较精确的统计在线人数的php代码,有兴趣的朋友,可以研究下。
今天,我们介绍的这个,可以详细记录在线访问者的IP地址,最后访问时间,请求的url等信息。供大家参考。
首先,创建数据表 ccol:
然后,编写统计用的php代码
<?
/*
文件:ccol.php
目的:统计同时在线浏览的人数
edit: www.jb200.com
*/
$duration=1800;
require "db.php"; //自行准备,数据库访问类
//包含DBSQL
$ccol=new dbSQL;
$ccol->connect();
$ccol->query("DELETE FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))>$duration");
//删除超过半小时的记录
$ccol->query("SELECT * FROM ccol WHERE ip='$REMOTE_ADDR'");
//判断当前的IP是否在该表中存在
if ($ccol->nf())//有?
{
$ccol->next_record();//下移找到的记录数组的指针
$id=$ccol->f('id');
$ccol->query("UPDATE ccol SET dtstamp=now(), uri='$REQUEST_URI' WHERE id=$id");
//设置最后访问时间和访问页面
}
else//没有
{
$ccol->query("INSERT INTO ccol VALUES (0, '$REMOTE_ADDR', now(), '$REQUEST_URI')");
}
$ccol->query("SELECT COUNT(*) AS ccol FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))<=$duration");
//找出在半个小时内的记录,后面的WHERE子句可有可无--超出时间的已经被删除了
$ccol->next_record()
echo "在线人数:", $ccol->f('ccol');
$ccol->free_result();
?>
调用方法,在站点的每个页面的上面调用这个程序。
例如:
总结,以上代码仅供初学者参考。
有兴趣的朋友,可以加以改进与扩展,有好的统计在线人数的代码,也欢迎大家分享交流。