PHP+MySQL实现精确统计网站访问量(IP个数)_随笔集

PHP+MySQL实现精确统计网站访问量(IP个数)

2022-11-15 21:52:12  浏览:370  作者:保利尼奥
1、创建一个存储数据的表。进入MySQL后直接创建即可。create table wp_jc_count( id int not null auto_increment primary key, 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的账户和密码。

<?php
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 "成功"."<br>";
        //echo $_SERVER['REMOTE_ADDR']."<br>";
    }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);
?>

<table>
    <tr style="text-align:center;font-size:18px; font-family:黑体;">
    <td style="width:100%;text-align:center;">博客总访问量:<a style="color:DodgerBlue;"><?php echo $num;?></a> 人(IP数量)</td>
    </tr>
 </table>
-----------------------------------
©著作权归作者所有:来自51CTO博客作者微笑涛声的原创作品,请联系作者获取转载授权,否则将追究法律责任
PHP+MySQL实现精确统计网站访问量(IP个数)
https://blog.51cto.com/u_14068620/4852102

运行效果:

PHP+MySQL实现精确统计网站访问量(IP个数)_数据库

评论区

共 0 条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机内容】

返回顶部