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