参考了一下网上资料,基本思路就是利用数据库记录用户的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)
);
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;
$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;
转载于:https://blog.51cto.com/xieyu/67186