首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用cookies的唯一访客计数

不使用cookies的唯一访客计数
EN

Stack Overflow用户
提问于 2021-08-28 16:22:04
回答 1查看 84关注 0票数 0

我是初学者,想学习如何通过使用PHP cookies来统计独特的访客。我试着写了这段代码。我还将其存储在数据库中。问题是我没有得到真正的访问者只有2-3个访问者来这个页面根据谷歌分析,但根据我的代码,我得到了50。这个错误是因为google机器人吗?

我认为问题出在我的代码中,请帮我解决这个问题。

以下是我的代码

代码语言:javascript
复制
      <?php 
    include 'configuration.php';
        if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
        } else {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
       if (preg_match('/bot|crawl|curl|dataprovider|search|get|spider|find|java|majesticsEO|google|yahoo|teoma|contaxe|yandex|libwww-perl|facebookexternalhit/i', $_SERVER['HTTP_USER_AGENT'])) {
    // is bot
}else{
$value = bin2hex(random_bytes(10));
$path = "/";
$expires = time()+15780000;//6 month
$cookie =  '1';
if (!isset($_COOKIE['Q_zWnE8_aq']))
{
    $name= 'Q_zWnE8_aq';
    $new_visitor = $cookie++;
    setcookie($name, $value,$expires,$path,"mydomain.in");
    
    $sql010 = $conn2->prepare("SELECT * FROM unique_vistor WHERE ip = ? ");
     $sql010->bind_param("s",$ip);
     $sql010->execute();
     
     
    $reS = $sql010->get_result()->fetch_all(MYSQLI_ASSOC);
    if(count($reS )>0){
    //   already exists
    }else{
   
            
            $result55=$conn2->prepare("INSERT INTO unique_vistor(id,name,value,expires,new_visitor,ip) VALUES (?,?,?,?,?,?)");
            $result55->bind_param("isssss",$id,$name,$value,$expires,$new_visitor,$ip);
            $result55->execute();
            $result55->close();
            
        
    }

  }
}
        ?>
EN

回答 1

Stack Overflow用户

发布于 2021-08-28 17:50:51

我在StackOverflow上发现了这个,我如何检测机器人,我已经更新了上面的代码,请告诉我。这是正确的工作方式吗?

代码语言:javascript
复制
    if (preg_match('/bot|crawl|curl|dataprovider|search|get|spider|find|java|majesticsEO|google|yahoo|teoma|contaxe|yandex|libwww-perl|facebookexternalhit/i', $_SERVER['HTTP_USER_AGENT'])) {
    // is bot
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68966228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档