也谈php网站在线人数统计
php  /  管理员 发布于 7年前   141
//对于所有用户 TempID=".$tempid; RequestTime='".getCurrentTime()."' WHERE TempID=".$tempid; VALUES('".$tempid."','".getCurrentTime()."')"; //查看其他用户 unix_timestamp(RequestTime) > ".ONLINE_DURATION." AND UserGroupID != ".GUEST; //游客 unix_timestamp(RequestTime) > ".ONLINE_DURATION; //得到在线人数,分用户和游客 UserGroupID != 4"; //4 为guest的用户组id 其中的connect(), disconnect(), query(),fetch_array()函数在dbmanager.inc.PHP中 define("DB_NAME","databasename"); function connect() function pconnect() function disconnect($conn) function query($stmt,$conn) function fetch_array($result) function fetch_row($result) function num_rows($result) function result($result,$row,$field) ui层:
{
$conn = connect();
//先设置自己为在线
$stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='Y' WHERE UserID=".$userid;
$result = query($stmt,$conn);
//info($stmt);
//如果当前用户是游客
if ($tempid != null)
{
$stmt = "SELECT TempID FROM ".DB_NAME.".TEMPUSER WHERE
$result = query($stmt,$conn);
//info($stmt);
//如果该游客还在线
if ($row = fetch_array($result))
{
$stmt = "UPDATE ".DB_NAME.".TEMPUSER SET
$result = query($stmt,$conn);
//info($stmt);
}
//该游客已经离线
else
{
$stmt = "INSERT INTO ".DB_NAME.".TEMPUSER
$result = query($stmt,$conn);
//info($stmt);
}
}
//普通用户
$stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='N' WHERE ".time()." -
$result = query($stmt,$conn);
$stmt = "DELETE FROM ".DB_NAME.".TEMPUSER WHERE ".time()." -
$result = query($stmt,$conn);
disconnect($conn);
}
function getOnlineNumber()
{
$olnum = array();
$conn = connect();
$stmt = "SELECT COUNT(UserID) FROM ".DB_NAME.".USER WHERE IsOnline='Y' AND
//info ($stmt);
$result = query($stmt,$conn);
$olnum['user'] = result($result,0,"COUNT(UserID)");
$stmt = "SELECT COUNT(TempID) FROM ".DB_NAME.".TEMPUSER";
//info ($stmt);
$result = query($stmt,$conn);
if ($row = fetch_array($result))
{
$olnum['guest'] = $row['COUNT(TempID)'];
}
disconnect($conn);
return $olnum; //from www.w3sky.com
}
dbmanager.inc.PHP
define("DB_USER","user");
define("DB_PASS","pass");
define("DB_HOST","localhost");
{
//echo "Connecting to Host:".HOST."
";
$conn = mysql_connect(DB_HOST,DB_USER,DB_PASS);
mysql_select_db(DB_NAME);
/*
if ($conn)
{
echo "Connect to database sucessfully. connection id:".$conn."
";
}
else
{
echo "Connect to database failed.
";
}
*/
return $conn;
}
{
return mysql_pconnect(DB_HOST,DB_USER,DB_PASS);
}
{
$close = mysql_close($conn);
/*
if ($close)
echo "MySQL Database disconnected.
";
else
echo "MySQL Database disconnecting failed. Please try again.
";
*/
}
{
return mysql_query($stmt,$conn); //from www.w3sky.com
}
{
return mysql_fetch_array($result);
}
{
return mysql_fetch_row($result);
}
{
return mysql_num_rows($result);
}
{
return mysql_result($result,$row,$field);
}
rule层:
rl_online.PHP
function getOnline()
{
if ($userid == 2)
{
if (session_is_registered("tempuserid"))
{
checkOnline($userid,$tempuserid);
}
}
else
{
checkOnline($userid);
}
return getOnlineNumber();
}
ui_online.PHP
$online_num = getOnline();
echo "在线人数,注册用户".$online_num['user']."人,游客".$online_num['guest']."人"; 您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号