background image

PHP ajax 统计当前在线用户数程序代码

本文章来给大家介绍

PHP ajax 统计当前在线用户数程序代码,有需要的朋友可参考。

我 们 要 统 计 在 一 段 时 间 内 访 问 站 点 的 人 数 , 有 多 种 解 决 方 案 , 你 可 以 使 用

cookie,session 结合文本或者数据库来记录用户访问数。本文将使用 PHP,结合 Mysql 以及
jQuery,展示一个统计在线人数以及访客地区分布的示例。

通常,当访客访问网站时,页面记录用户的

cookie 信息,当 cookie 过期即认为用户不

在线。本文中我们使用

PHP 记录访客 IP,并在客户端记录 cookie 及过期时间,同时通过新

IP 地址接口,获取访客的地理位置(本例只记录省份),一并写入 mysql 表中,即可统

计一段时间内的访客总数,也可以查看访客的地区分布。

HTML
我们在页面上放置一个显示当前在线人数的

div#total 以及一个用于展示访客地区分布

的列表

#onlinelist,默认我们在列表中放置一张与加载动画图片,后面我们用 jQuery 控制当

鼠标滑向时展示详细列表。

代码如下
<div class="demo"> 

      <div id="total">当前在线:<span id="onlinenum"></span></div> 
    <ul id="onlinelist"> 
        <li><img src="loader.gif"></li> 
    </ul> 
</div> 

CSS
我们用

CSS 来渲染显示效果,为了就是不让我们的示例很难看,下面的代码中,我们

使用了

CSS3,时代在进步啊,所以建议使用现代浏览器预览效果。

代码如下

  demo{width:150px; margin:20px auto; font-size:14px} 
  #total{padding:6px 10px; background:#090 url(arr.png) no-repeat right top; color:#fff;  
  cursor:pointer; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px;  
  -moz-box-shadow:0 0 3px #ccc; -webkit-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;} 
  #onlinelist{background:#f7f7f7; border:1px solid #d3d3d3; display:none;    
  -moz-border-radius:5px;  
  -webkit-border-radius:5px; border-radius:5px; -moz-box-shadow:0 0 3px #ccc;  
  -webkit-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;} 
  #onlinelist li{height:20px; line-height:20px;padding:4px 6px;border-bottom:1px dotted   
  #d9d9d9} 
  #onlinelist li span{float:right} 
  #onlinelist li:hover{background:#fff} 

Mysql
我们要准备一张数据表

online,用来记录访客 IP、地区及访问时间。整个示例统计过程

都依赖这张表,其结构如下:

代码如下
CREATE TABLE IF NOT EXISTS `online` ( 

  `id` int(11) NOT NULL AUTO_INCREMENT, 
  `ip` varchar(30) NOT NULL,