[转]php统计在线人数
CREATE TABLE `user_online` (
`session` varchar(100) NOT NULL default '',
`time` int(11) NOT NULL default '0'
) TYPE=MyISAM;
`session` varchar(100) NOT NULL default '',
`time` int(11) NOT NULL default '0'
) TYPE=MyISAM;
代码
<?php
session_start();
$session=session_id();
$time=time();
//$time_check用于检测是否超时
$time_check=$time-600; //设置时间10分钟=10*60秒
$host="localhost"; // 主机名
$username="root"; // Mysql u用户名
$password="123456"; // Mysql 密码
$db_name="test"; // 数据库 名
$tbl_name="user_online"; // 表格名
// 连接到服务器并选择数据库
mysql_connect("$host", "$username", "$password")or die("无法连接mysql服务");
mysql_select_db("$db_name")or die("无法选择数据库");
$sql="SELECT * FROM $tbl_name WHERE session='$session'";
$result=mysql_query($sql);//执行查询
$count=mysql_num_rows($result);
//检查指定的session是否存在,否则插入记录
if($count=="0"){
//指定的session不存在
$sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1=mysql_query($sql1);//执行插入
}else {
$sql2="UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2=mysql_query($sql2);//如果存在则修改连接时间
}
$sql3="SELECT * FROM $tbl_name";
$result3=mysql_query($sql3);
$count_user_online=mysql_num_rows($result3);//统计session次数决定在线人数
echo "在线人数 : $count_user_online ";
//删除超时的session记录,10分钟之前连接的用户视为超时过期
$sql4="DELETE FROM $tbl_name WHERE time<$time_check";
$result4=mysql_query($sql4);
mysql_close();
// 打开多个浏览器页面测试下
?>
session_start();
$session=session_id();
$time=time();
//$time_check用于检测是否超时
$time_check=$time-600; //设置时间10分钟=10*60秒
$host="localhost"; // 主机名
$username="root"; // Mysql u用户名
$password="123456"; // Mysql 密码
$db_name="test"; // 数据库 名
$tbl_name="user_online"; // 表格名
// 连接到服务器并选择数据库
mysql_connect("$host", "$username", "$password")or die("无法连接mysql服务");
mysql_select_db("$db_name")or die("无法选择数据库");
$sql="SELECT * FROM $tbl_name WHERE session='$session'";
$result=mysql_query($sql);//执行查询
$count=mysql_num_rows($result);
//检查指定的session是否存在,否则插入记录
if($count=="0"){
//指定的session不存在
$sql1="INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1=mysql_query($sql1);//执行插入
}else {
$sql2="UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2=mysql_query($sql2);//如果存在则修改连接时间
}
$sql3="SELECT * FROM $tbl_name";
$result3=mysql_query($sql3);
$count_user_online=mysql_num_rows($result3);//统计session次数决定在线人数
echo "在线人数 : $count_user_online ";
//删除超时的session记录,10分钟之前连接的用户视为超时过期
$sql4="DELETE FROM $tbl_name WHERE time<$time_check";
$result4=mysql_query($sql4);
mysql_close();
// 打开多个浏览器页面测试下
?>
轉自:http://hi.baidu.com/fanglor/blog/item/55eb194bbb9026fc83025c5c.html
申明
非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!
博文欢迎转载,但请给出原文连接。