也谈php网站在线人数统计


Posted in PHP onApril 09, 2008

  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&amp;MYSQL留言板源码
Jul 19 PHP
PHP 远程关机实现代码
Nov 10 PHP
php &amp;&amp; 逻辑与运算符使用说明
Mar 04 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
linux下编译安装memcached服务
Aug 03 PHP
PHP多文件上传类实例
Mar 07 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
Thinkphp框架开发移动端接口(2)
Aug 18 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
php实现的在线人员函数库
Apr 09 #PHP
PHP循环获取GET和POST值的代码
Apr 09 #PHP
生成卡号php代码
Apr 09 #PHP
PHP获取网卡地址的代码
Apr 09 #PHP
PHP防注入安全代码
Apr 09 #PHP
PHP中用header图片地址 简单隐藏图片源地址
Apr 09 #PHP
PHP中的extract的作用分析
Apr 09 #PHP
You might like
php语言流程控制中的主动与被动
2012/11/05 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
[00:35]可解锁地面特效
2018/12/20 DOTA
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
2020/06/02 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
大学生毕业求职简历的自我评价
2013/10/24 职场文书
化妆品促销活动总结
2015/05/07 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
在职证明书模板
2015/06/15 职场文书
汉语拼音教学反思
2016/02/22 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL