PHP统计在线人数

参考了一下网上资料,基本思路就是利用数据库记录用户的ip和最后访问时间。
(数据库连接和相关函数自理)
 
//表结构
CREATE TABLE online(  
id integer not null auto_increment, #记录的ID  
ip varchar(15) not null default '', #访问者的IP地址  
lasttime datetime not null default '', #最后访问时间  
uri varchar(255), #访问者请求的URI  
primary key (id)  
);
 
$ip         = real_ip();               //客户ip 
$uri        = get_uri();    
$time      = time();                  //当前时间
$duration = 60 * 30;               //保持登陆状态的持续时间
$lasttime = $time - $duration;  //最后有效时间

$sql = "select count(*) from online where ip='$ip'";
if ($db->get_one($sql)) {
    $sql = "UPDATE online set lasttime='$time' uri='$uri' where ip='$ip'";
} else {
    $sql = "INSERT into online (ip,lasttime,uri) vlaues ('$ip','$time','$uri')";
}
$db->query($sql);

$sql = "delete from online where lasttime < '$lasttime'";
$db->query($sql);

$sql = "select count(*) from online where lasttime >= '$lasttime'";
$online_count = $db->get_one($sql);

echo "当前在线人数:" . $online_count;

你可能感兴趣的:(PHP,职场,统计,休闲,在线人数)