网站风格: 红 | 蓝
搜索:  全站?
首页 |  Java开发 |  DOTNET开发 |  PHP开发 |  ASP技术 |  Web开发 |  数据库应用 |  网络文摘 |  作品集 |  下载 |  留言
文章聚合
  J2EE  |   框架技术  |   Javascript  |   AJAX  |   J2ee Server  |   J2ME  |
  WinForm开发  |   Asp.net  |   C#语言  |   服务器  |   第三方控件  |
  PHP笔记  |   Linux  |   第三方代码  |
  ASP教程  |   ASP实用代码  |   ASP笔记  |   服务器  |
  CSS样式表  |   Photoshop设计  |   Flash  |   HTML 小技巧  |   Dreamweaver  |   XML技术  |
  SQL Server  |   Oracle  |   MySQL  |
  散文  |   幽默  |   杂文  |
  Web 项目  |   杂七杂八  |
  第三方代码  |   实用工具  |   作品下载  |   帮助文档  |
奇点网 - PHP开发 - PHP笔记 - PHP实现在线人数统计的简单方法
PHP实现在线人数统计的简单方法
来源:http://www.7dit.com     作者:7dit     发布日期:2008-09-22 14:10:30   点击量:322

PHP没有application对象。那怎样保存一个全站的信息呢?

最简单的方式就是利用数据库,因为数据库和application一样是一个"公有对象"。

一. 在线人数,一般是根据浏览者的IP进行判断。因此只需要在数据库中存放当前浏览者的IP即可,可以将IP设为主键,省去判断的麻烦。 统计时只需要取出所有IP就能知道当前

的在线IP数。

 

二. 监听: PHP不像servlet那样可以设置一个会话监听, 要判断一个IP是否已失效, 也需要对数据库进行操作。 首先需要一个变量来存放IP失败的时长, 这里假设一个INT整

的变量,表示IP失效所需的时间的秒数。思路是通过判断IP记录的时间与当前时间的差,进行数据删除。

数据库表如下:

 

表名:useronline

IP varchar(15)   primarykey //存放IP
createTime int(25) //存放创建该IP记录的时间戳

 

PHP文件定义两个函数


setOnlineCount()
{
  


global $conn;  //数据库的连接源
  $ip = $_SERVER['REMOTE_ADDR'];  //当前访问的用户IP
  $nowtime = time(); //获取当前的时间秒数
  $sqlstring = "insert into useronline values('$newip',$nowtime)";  //执行新增IP的语句
  mysql_query($sqlstring,$conn);

  //该函数不关注IP的监听,只关注IP的新增,因为IP为主键,所以不需再判断IP是否存在于数据库中,如果相同插入操作将失败


}

 

getOnlineCount()
{



  global $conn; 
  $nowtime = time(); //当前时间戳
  $sqlstringdel = "delete from useronline where $nowtime-otime >= 1200";  //先删除时间差为1200秒(即20分钟内的IP记录)
  mysql_query($sqlstringdel,$conn);
  $sqlstring = "select count(*) from useronline"; //只需统计当前IP库的记录则可返回在线人数
  $rs = mysql_query($sqlstring,$conn);
  if($row = mysql_fetch_array($rs,MYSQL_NUM))
  {
   return $row[0];
  }
  else
  {
   return 0;
  }


 
}
标签:   php  |  统计  |  笔记  |
留言 | 链接 | 标签 | 风格: 红 蓝   
Copyright © 2005 奇点中文网--7dit.com
闽ICP备05001292号