也谈php网站在线人数统计
作者:手机用户2502923261 | 来源:互联网 | 2018-03-17 11:57
db层:db_online.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']."人";
推荐阅读
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-14 17:15:19
本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ...
[详细]
蜡笔小新 2023-12-14 17:03:58
本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ...
[详细]
蜡笔小新 2023-12-14 15:30:33
本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ...
[详细]
蜡笔小新 2023-12-14 14:06:10
本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ...
[详细]
蜡笔小新 2023-12-14 14:02:42
本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ...
[详细]
蜡笔小新 2023-12-14 12:14:09
在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ...
[详细]
蜡笔小新 2023-12-14 10:57:47
本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ...
[详细]
蜡笔小新 2023-12-14 10:11:46
本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ...
[详细]
蜡笔小新 2023-12-14 08:19:53
本文介绍了一个PHP玩家基地系统的毕业设计,包括用户登录界面、游戏管理和玩家作品管理等功能。附带源码和运行环境,并提供免费赠送本源代码和数据库的方式,请私信获取详细信息。摘要共计约XXX字。 ...
[详细]
蜡笔小新 2023-12-14 19:16:11
本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ...
[详细]
蜡笔小新 2023-12-14 13:12:10
本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ...
[详细]
蜡笔小新 2023-12-14 10:03:27
本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ...
[详细]
蜡笔小新 2023-12-14 03:24:19
数据库(外键及其约束理解)(https:www.cnblogs.comchenxiaoheip6909318.html)My ...
[详细]
蜡笔小新 2023-12-13 19:24:01
本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ...
[详细]
蜡笔小新 2023-12-13 18:08:58
手机用户2502923261
这个家伙很懒,什么也没留下!