background image

PHP+Mysql+jQuery 统计当前在线用户数

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

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=http://www.php100.com/html/webkaifa/PHP/PHPyi
ngyong/2013/0321/"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 rig
ht top; color:#fff;  
cursor:pointer; -moz-border-radius:5px; -webkit-border-radius:5px; bor
der-radius:5px;  
-moz-box-shadow:0 0 3px #ccc; -webkit-box-shadow:0 0 3px #ccc;bo
x-shadow:0 0 3px #ccc;} 
#onlinelist{background:#f7f7f7; border:1px solid #d3d3d3; display:n
one; -moz-border-radius:5px;  
-webkit-border-radius:5px; border-radius:5px; -moz-box-shadow:0 0 3
px #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