原文来自搬砖工,如需转载请注明出处
简单介绍一下用php+mysql实现简单的访客统计
一、php脚本<?phpps:当数据库中当前ip没有的时候,执行insert。否则执行update。insert插入ip以及初始值times=1,update更新times+1。
//连接数据库
$conn=mysql_connect("localhost","root","root");
if(!$conn){
die("链接失败".mysql_errno());
}
//设置数据库编码方式
mysql_query("set names utf8",$conn) or die(mysql_errno());
//选择数据库
mysql_select_db("wordpress",$conn) or die(mysql_errno());
$adress=$_SERVER["REMOTE_ADDR"];
//将本次访客的ip地址添加到数据库中
$sql="select times from wp_count where ip='$adress'";
$res=mysql_query($sql,$conn);
if(!$row=mysql_fetch_row($res)){
$sql="insert into wp_count(ip, times) values('$adress','1')";
}else{
$times = $row['0']+1;
$sql="update wp_count set times='$times' where ip='$adress'";
}
$res=mysql_query($sql,$conn);
//发送语句获取总数
$sql="select count(ip) from wp_count";
$res=mysql_query($sql,$conn);
if($row=mysql_fetch_row($res)){
$num=$row['0'];
}
echo"您是第 "."$num"." 位访客"."您的ip地址是"."$adress";
mysql_close();
?>
二、数据库示例
表wp_countps:上面的表结构满足我的需求,因为我的站点统计的是ip数,而且我将同一个ip无论访问多少次都认定为他是一个访客。页面上显示的多少位就是总共有多少个ip访问。
三、效果
四、扩展
上面的示例使用的是数据库的方式实现。当然,如果使用txt文本的形式也是可以的。
在简单的访客统计的基础上,大家可以为自己的站点添加一个很精确的站点统计。例如实现访客上次访问时间,就可以利用js触发当访客关闭当前页面的时候修改访问时间就能实现。ps:经测试,百度统计的数据并不是非常准确。因为百度是用引用的js进行数据统计,如果站点js加载失败或者其他原因就可能导致某些数据未统计到。