建站极客
网络编程 PHP编程 正文
也谈php网站在线人数统计
所属分类:
网络编程 / PHP编程
阅读数:
1207
收藏 0
赞 0
分享
function checkOnline($userid,$tempid=null) { $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 TempID=".$tempid; $result = query($stmt,$conn); //info($stmt); //如果该游客还在线 if ($row = fetch_array($result)) { $stmt = "UPDATE ".DB_NAME.".TEMPUSER SET RequestTime='".getCurrentTime()."' WHERE TempID=".$tempid; $result = query($stmt,$conn); //info($stmt); } //该游客已经离线 else { $stmt = "INSERT INTO ".DB_NAME.".TEMPUSER VALUES('".$tempid."','".getCurrentTime()."')"; $result = query($stmt,$conn); //info($stmt); } } //查看其他用户 //普通用户 $stmt = "UPDATE ".DB_NAME.".USER SET IsOnline='N' WHERE ".time()." - unix_timestamp(RequestTime) > ".ONLINE_DURATION." AND UserGroupID != ".GUEST; $result = query($stmt,$conn); //游客 $stmt = "DELETE FROM ".DB_NAME.".TEMPUSER WHERE ".time()." - unix_timestamp(RequestTime) > ".ONLINE_DURATION; $result = query($stmt,$conn); disconnect($conn); } //得到在线人数,分用户和游客 function getOnlineNumber() { $olnum = array(); $conn = connect(); $stmt = "SELECT COUNT(UserID) FROM ".DB_NAME.".USER WHERE IsOnline='Y' AND UserGroupID != 4"; //4 为guest的用户组id //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 } 其中的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"); function connect() { //echo "Connecting to Host:".HOST."<br>"; $conn = mysql_connect(DB_HOST,DB_USER,DB_PASS); mysql_select_db(DB_NAME); /* if ($conn) { echo "Connect to database sucessfully. connection id:".$conn."<br>"; } else { echo "Connect to database failed.<br>"; } */ return $conn; } function pconnect() { return mysql_pconnect(DB_HOST,DB_USER,DB_PASS); } function disconnect($conn) { $close = mysql_close($conn); /* if ($close) echo "MySQL Database disconnected.<br>"; else echo "MySQL Database disconnecting failed. Please try again.<br>"; */ } function query($stmt,$conn) { return mysql_query($stmt,$conn); //from www.w3sky.com } function fetch_array($result) { return mysql_fetch_array($result); } function fetch_row($result) { return mysql_fetch_row($result); } function num_rows($result) { return mysql_num_rows($result); } function result($result,$row,$field) { 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层: ui_online.PHP $online_num = getOnline(); echo "在线人数,注册用户".$online_num['user']."人,游客".$online_num['guest']."人";
php文件管理基本功能简单操作 这篇文章主要为大家详细介绍了php文件管理基本功能简单操作的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
评论 0
收藏 0
赞 0
分享
php常用数组函数实例小结 这篇文章主要介绍了php常用数组函数,结合实例形式总结分析了php常用数组函数array_merge、array_slice及array_map的功能与使用技巧,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
php常用正则函数实例小结 这篇文章主要介绍了php常用正则函数,结合实例形式总结分析了php正则表达式常用函数,包括preg_replace、preg_match及preg_match_all函数的功能、使用方法与相关注意事项,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
php常用字符函数实例小结 这篇文章主要介绍了php常用字符函数,结合实例形式总结分析了php常用字符函数substr、preg_match、strpos、dirname及str_split功能、用法与相关注意事项,需要的朋友可以参考下
评论 0
收藏 0
赞 0
分享
微信公众号模板消息群发php代码示例 这篇文章主要为大家详细介绍了微信公众号模板消息群发php代码示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
评论 0
收藏 0
赞 0
分享
查看更多