也谈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语法(5)
Oct 09 PHP
在字符串中把网址改成超级链接
Oct 09 PHP
PHP array_push 数组函数
Dec 26 PHP
简单PHP上传图片、删除图片实现代码
May 12 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
简单实现PHP留言板功能
Dec 21 PHP
ThinkPHP实现分页功能
Apr 28 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 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
星际争霸任务指南——神族
2020/03/04 星际争霸
Terran兵种介绍
2020/03/14 星际争霸
PHP 中执行排序与 MySQL 中排序
2009/04/21 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
JS阻止用户多次提交示例代码
2014/03/26 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
js如何打印object对象
2015/10/16 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
2017/09/20 Javascript
详解angular脏检查原理及伪代码实现
2018/06/08 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
复古服装:RetroStage
2019/05/10 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
经典c++面试题五
2014/12/17 面试题
小学生自我评价范例
2013/09/24 职场文书
助学贷款贫困证明
2014/09/23 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
离职报告范文
2014/11/04 职场文书
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python