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)
);
1 $ip = real_ip(); //客户ip
2 $uri = get_uri();
3 $time = time(); //当前时间
4 $duration = 60 * 30; //保持登陆状态的持续时间
5 $lasttime = $time - $duration; //最后有效时间
6
7 $sql = "select count(*) from online where ip='$ip'";
8 if ($db->get_one($sql)) {
9 $sql = "UPDATE online set lasttime='$time' uri='$uri' where ip='$ip'";
10 } else {
11 $sql = "INSERT into online (ip,lasttime,uri) vlaues ('$ip','$time','$uri')";
12 }
13 $db->query($sql);
14
15 $sql = "delete from online where lasttime < '$lasttime'";
16 $db->query($sql);
17
18 $sql = "select count(*) from online where lasttime >= '$lasttime'";
19 $online_count = $db->get_one($sql);
20
21 echo "当前在线人数:" . $online_count;
posted @ 2011-03-30 16:42  tennychen  阅读(296)  评论(0编辑  收藏  举报