php统计在线
首先是创建MYSQL数据库表。
CREATE TABLE tablename (
field type(max_length) DEFAULT 'default_value' (NOT) NULL
}
可以使用的SQL语句。
CREATE TABLE useronline (
timestamp int(15) DEFAULT '0' NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
PRIMARY KEY (timestamp),
KEY ip (ip),
KEY file (file)
);
下面我们开始使用PHP脚本,首先定义MYSQL的信息。
server = "localhost"; //你的服务器
db_user = "root"; //你的mysql的用户名
db_pass = "password"; //你的mysql的密码
database = "users"; //表的名字
设置统计的时间(多少秒内在线人数)
timeoutseconds = 300;
取当前时间。
timestamp = time();
⑵ php如何实现分别统计网站的在线人数(如管理员,游客,会员),越详越好!
实现刷新在线用户列表,思路建立一个Session临时表 每次用户登陆就写入用户的 ID 级别 临时时间 等 重点在临时时间的字段数据,写入之后用户每次刷新页面或者打开新页面就更新Session表里的用户数据 步骤是先删除5分钟之内没有操作的用户,利用临时时间字段来判断 删除后剩下的就是在线的用户,很简单, 总体就是 记录 更新 删除 获取PS:这个超时时间你可以根据自己网站的情况设置
⑶ PHP如何统计在线人数
原理:根据不同的IP统计出当前有多少人在线。
实现方式:可以用数据库,也可以用文本。
我这里用了文本实现。
$user_online="count.php";//保存人数的文件
touch($user_online);//如果没有此文件,则创建
$timeout=30;//30秒内没动作者,认为掉线
$user_arr=file_get_contents($user_online);
$user_arr=explode('#',rtrim($user_arr,'#'));
print_r($user_arr);
$temp=array();
foreach($user_arras$value){
$user=explode(",",trim($value));
if(($user[0]!=getenv('REMOTE_ADDR'))&&($user[1]>time())){//如果不是本用户IP并时间没有超时则放入到数组中
array_push($temp,$user[0].",".$user[1]);
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time()+($timeout)).'#');//保存本用户的信息
$user_arr=implode("#",$temp);
//写入文件
$fp=fopen($user_online,"w");
flock($fp,LOCK_EX);//flock()不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$user_arr);
flock($fp,LOCK_UN);
fclose($fp);
echo"当前有".count($temp)."人在线";