mysql 昨天访问量_PHP+MySQL实现精确统计网站访问量(IP个数)

基于WordPress的网站有很多统计功能。但是只能统计文章阅读数。不能统计访客人数。以下代码可以实现获取来访用户的IP地址,一个IP对应一次访问。即使刷新也不会增加访问量。这个非常精确。

1、创建一个存储数据的表。进入MySQL后直接创建即可。

create table wp_jc_count(

id int not null auto_increment primary key,

ip varchar(20) not null,

times int default 0

);

2、创建一个php脚本。复制到需要显示的地方即可。注意:里面需要修改MySQL的账户和密码。

class visitorInfo

{

//获取访客ip

public function getIp()

{

$ip=false;

if(!empty($_SERVER["HTTP_CLIENT_IP"])){

$ip = $_SERVER["HTTP_CLIENT_IP"];

}

if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);

if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }

for ($i = 0; $i < count($ips); $i++) {

if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {

$ip = $ips[$i];

break;

}

}

}

return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);

}

//获取网站来源

public function getFromPage(){

return $_SERVER['HTTP_REFERER'];

}

}

$visitor =new visitorInfo();

//连接数据库

$conn=mysqli_connect("localhost","user_naem","password","db_name");

if($conn){

//echo "成功"."
";

//echo $_SERVER['REMOTE_ADDR']."
";

}else{

echo "失败\n";

die(mysqli_connect_error());

}

//设置数据库编码方式

mysqli_set_charset($conn,"utf8") or die(mysqli_connect_error());

//记录访客的ip地址

$address=$visitor->getIp();

//查询当前访客来访的次数的sql语句

$sql="select times from wp_jc_count where ip='$address'";

//查询结果存到$result变量

$result=mysqli_query($conn,$sql) or die(mysqli_connect_error());

if(!$row=$result->fetch_row()){

$sql="insert into wp_jc_count(ip, times) values('$address','1')";

}else{

$times=$row['0']+1;

$sql="update wp_jc_count set times='$times' where ip ='$address'";

}

$result=mysqli_query($conn,$sql) or die(mysqli_connect_error());

//获取总的访问人数即数据表中所有ip的数量

$sql="select count(ip) from wp_jc_count";

$result=mysqli_query($conn,$sql) or die(mysqli_connect_error());

if($row=$result->fetch_row()){

$num=$row[0];

}

echo "您是第".$num."位访客";

mysqli_close($conn);

?>

3、我自己的博客做了一些优化。把代码放在了文本工具里面执行。如果你的文本工具不能执行代码。请移步:

我的博客代码:

class visitorInfo

{

//获取访客ip

public function getIp()

{

$ip=false;

if(!empty($_SERVER["HTTP_CLIENT_IP"])){

$ip = $_SERVER["HTTP_CLIENT_IP"];

}

if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);

if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }

for ($i = 0; $i < count($ips); $i++) {

if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {

$ip = $ips[$i];

break;

}

}

}

return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);

}

//获取网站来源

public function getFromPage(){

return $_SERVER['HTTP_REFERER'];

}

}

$visitor =new visitorInfo();

//连接数据库

$conn=mysqli_connect("localhost","user_naem","password","db_name");

if($conn){

//echo "成功"."
";

//echo $_SERVER['REMOTE_ADDR']."
";

}else{

echo "失败\n";

die(mysqli_connect_error());

}

//设置数据库编码方式

mysqli_set_charset($conn,"utf8") or die(mysqli_connect_error());

//记录访客的ip地址

$address=$visitor->getIp();

//查询当前访客来访的次数的sql语句

$sql="select times from wp_jc_count where ip='$address'";

//查询结果存到$result变量

$result=mysqli_query($conn,$sql) or die(mysqli_connect_error());

if(!$row=$result->fetch_row()){

$sql="insert into wp_jc_count(ip, times) values('$address','1')";

}else{

$times=$row['0']+1;

$sql="update wp_jc_count set times='$times' where ip ='$address'";

}

$result=mysqli_query($conn,$sql) or die(mysqli_connect_error());

//获取总的访问人数即数据表中所有ip的数量

$sql="select count(ip) from wp_jc_count";

$result=mysqli_query($conn,$sql) or die(mysqli_connect_error());

if($row=$result->fetch_row()){

$num=$row[0];

}

mysqli_close($conn);

?>

    博客总访问量:<?php echo $num;?> 人(IP数量)

运行效果:

f20860e5cf2c3f46e442563f4370449a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值