也谈php网站在线人数统计

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."
";

$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;

}

function pconnect()

{

return mysql_pconnect(DB_HOST,DB_USER,DB_PASS);

}

function disconnect($conn)

{

$close = mysql_close($conn);

/*

if ($close)

echo "MySQL Database disconnected.
";

else

echo "MySQL Database disconnecting failed. Please try again.
";

*/

}

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中文网

TAG标签:脚本

php页面在线人数,也谈php网站在线人数统计相关推荐

  1. php网站同时在线人数,也谈php网站在线人数统计

    function checkOnline($userid,$tempid=null) { $conn = connect(); //对于所有用户 //先设置自己为在线 $stmt = "UP ...

  2. Java监听器实现网站在线人数统计

    1.监听器定义 监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求.服务端的操作等.通过监听器,可以自动激发一些操作,比如监听在线的用户的数量. 2.常见的监听器 1)Ser ...

  3. Session实现网站在线人数统计

    Session统计网站在线人数 模仿一个B站左下角的人数在线统计: 1.实现一个Session监听器的接口,里面重写了俩个方法,一个是获取Session的方法,一个是销毁Session的方法.   2 ...

  4. servlet使用监听器统计网站在线人数

    创建监听器,主要用到session和request,所以,自定义监听器类要实现HttpSessionListener和ServletRequestListener接口: package com.lzx ...

  5. Javaweb Listener监听器的简单应用:统计网站在线人数

    Listener监听器实现统计网站在线人数 开发环境: IntelliJ IDEA 一.什么是监听器 是指专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生变化时, ...

  6. 利用HttpSessionListener实现网站在线人数统计功能

    为什么80%的码农都做不了架构师?>>>    在网站中经常需要进行在线人数的统计.过去的一般做法是结合登录和退出功能,即当用户输入用户名密码进行登录的时候计数器加1,然后当用户点击 ...

  7. java如何统计系统浏览人数_java网站如何统计访问量和在线人数实例源码

    java网站如何统计访问量和在线人数实例源码.简言之,如果不用第三方提供的接口 那最好的解决方案应该是当SESSION建立时sessionCreated(),在访问总数和当前在线人数上+1 当SESS ...

  8. Unity iOS打开AppStore评星页面,浅谈Application.OpenURL()方法。

    http://fairwoodgame.com/blog/?p=38 Unity iOS打开AppStore评星页面,浅谈Application.OpenURL()方法. Posted in  Uni ...

  9. 杭州网络推广带大家了解404页面的作用以及对网站优化的优势

    杭州网络推广指出,一个优质的网站,用户体验度也不是盖的,其中拥有一个好的404页面是标配.可见网站拥有该页面的重要性,那么为什么网站拥有优质的404会很重要,它又能发挥什么作用呢?下面杭州网络推广就带 ...

最新文章

  1. iOS图片,视频上传视频内容旋转
  2. 35岁危机可能是真的!调查显示在领英上年龄越大越难找工作,得贴年轻头像才行...
  3. POJ1324贪吃蛇(状态压缩广搜)
  4. DFiddler:A HTTP Packets Listener一个简易版的手机端的Fiddler。
  5. 深度学习保姆级入门教程 -- 论文+代码+常用工具
  6. Rails Migration Data Model栏位修改及数据类型介绍
  7. python tcp协议_python 网络编程 -- Tcp协议
  8. python 线程超时设置_python多任务之总结——(二)线程、协程
  9. 提取数据_Origin如何提取图片数据
  10. [转载] Python杂记之 list.clear()方法,清空列表
  11. 简单好用的mac版Mysql可视化工具 - Sequel Pro
  12. CSS常用基础效果---文字与图片并排+导航栏
  13. 推荐支持 azw3 、epub 和 mobi 格式的阅读器:FBReader
  14. 【硬石STM32f407开发板_DIY入门】模块化编程实例
  15. 跨境电商竞品分析报告
  16. ​力扣解法汇总904.水果成篮
  17. Selenium启动项参数设置
  18. 全景视频/VR的全流程处理解析-文献资料整理归纳
  19. JAVA格式代码出现两次_NullPointerException使用JMockit测试Mocked java.io.File两次
  20. iOS开发-类似微信录音上滑取消功能

热门文章

  1. exception: access violation reading 0xFFFFFFFFFFFFFFFF
  2. python DbUtils 使用教程
  3. postDelayed总结
  4. 青龙羊毛——美团联想商城喜爱帮(搬运)
  5. nethogs 查看 Linux 进程的网络使用
  6. 十、Redis五大数据类型之二List
  7. mysql 网络io_分布式 | DBLE 网络模块源码解析(一):网络 IO 基础知识
  8. docker php composer 使用_宿主机nginx与docker的PHP搭配使用
  9. VMWare 虚拟机启动报“内部错误”的解决办法
  10. 前端学习路线_前端学习路线图