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,