加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

也谈php网站在线人数统计

发布时间:2020-12-13 05:23:53 所属栏目:PHP教程 来源:网络整理
导读:functioncheckOnline($userid,$tempid=null) { $conn=connect(); //对于所有用户 //先设置自己为在线 $stmt="UPDATE".DB_NAME.".USERSETIsOnline='Y'WHEREUserID=".$userid; $result=query($stmt,$conn); //info($stmt); //如果当前用户是游客 if($tempid!=n

functioncheckOnline($userid,$tempid=null)
{
$conn=connect(); //对于所有用户
//先设置自己为在线
$stmt="UPDATE".DB_NAME.".USERSETIsOnline='Y'WHEREUserID=".$userid;
$result=query($stmt,$conn);
//info($stmt);
//如果当前用户是游客
if($tempid!=null)
{
$stmt="SELECTTempIDFROM".DB_NAME.".TEMPUSERWHERE TempID=".$tempid;
$result=query($stmt,$conn);
//info($stmt);
//如果该游客还在线
if($row=fetch_array($result))
{
$stmt="UPDATE".DB_NAME.".TEMPUSERSET RequestTime='".getCurrentTime()."'WHERETempID=".$tempid;
$result=query($stmt,$conn);
//info($stmt);
}
//该游客已经离线
else
{
$stmt="INSERTINTO".DB_NAME.".TEMPUSER VALUES('".$tempid."','".getCurrentTime()."')";
$result=query($stmt,$conn);
//info($stmt);
}
} //查看其他用户
//普通用户
$stmt="UPDATE".DB_NAME.".USERSETIsOnline='N'WHERE".time()."- unix_timestamp(RequestTime)>".ONLINE_DURATION."ANDUserGroupID!=".GUEST;
$result=query($stmt,$conn); //游客
$stmt="DELETEFROM".DB_NAME.".TEMPUSERWHERE".time()."- unix_timestamp(RequestTime)>".ONLINE_DURATION;
$result=query($stmt,$conn);
disconnect($conn);
} //得到在线人数,分用户和游客
functiongetOnlineNumber()
{
$olnum=array();
$conn=connect();
$stmt="SELECTCOUNT(UserID)FROM".DB_NAME.".USERWHEREIsOnline='Y'AND UserGroupID!=4";//4为guest的用户组id
//info($stmt);
$result=query($stmt,$conn);
$olnum['user']=result($result,"COUNT(UserID)");
$stmt="SELECTCOUNT(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;//fromwww.w3sky.com
} 其中的connect(),disconnect(),query(),fetch_array()函数在dbmanager.inc.PHP中
dbmanager.inc.PHP define("DB_NAME","databasename");
define("DB_USER","user");
define("DB_PASS","pass");
define("DB_HOST","localhost"); functionconnect()
{
//echo"ConnectingtoHost:".HOST."
";
$conn=mysql_connect(DB_HOST,DB_USER,DB_PASS);
mysql_select_db(DB_NAME);
/
if($conn)
{
echo"Connecttodatabasesucessfully.connectionid:".$conn."
";
}
else
{
echo"Connecttodatabasefailed.
";
}
/
return$conn;
} functionpconnect()
{
returnmysql_pconnect(DB_HOST,DB_PASS);
} functiondisconnect($conn)
{
$close=mysql_close($conn);
/
if($close)
echo"MySQLDatabasedisconnected.
";
else
echo"MySQLDatabasedisconnectingfailed.Pleasetryagain.
";
/
} functionquery($stmt,$conn)
{
returnmysql_query($stmt,$conn);//fromwww.w3sky.com
} functionfetch_array($result)
{
returnmysql_fetch_array($result);
} functionfetch_row($result)
{
returnmysql_fetch_row($result);
} functionnum_rows($result)
{
returnmysql_num_rows($result);
} functionresult($result,$row,$field)
{
returnmysql_result($result,$field);
}
rule层:
rl_online.PHP
functiongetOnline()
{
if($userid==2)
{
if(session_is_registered("tempuserid"))
{
checkOnline($userid,$tempuserid);
}
}
else
{
checkOnline($userid);
}
returngetOnlineNumber();
} ui层:
ui_online.PHP
$online_num=getOnline();
echo"在线人数,注册用户".$online_num['user']."人,游客".$online_num['guest']."人";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读