php - 如何使用 php 和 jquery 跟踪访问者,从综合浏览量中确定唯一访问者

标签 php jquery analytics user-tracking

我想跟踪访问我网站的访问者。当访客到达时,我想将有新访客的信息添加到我的数据库中,并能够判断他们是回访者还是新访客。

最好使用 cookie 或 IP 地址来跟踪它们吗? 将有一个名为“visitors”的表,其中包含“visitor_id”及其 IP 地址或 cookie 代码。 另一个名为“访问”的表,它将跟踪每次“访问者”到达该网站的时间,包括访问 ID、访问者 ID 和日期/时间。

如何确定这是一次新访问还是只是另一个页面 View ?即网站上的每个页面都会有此代码来添加访问者,但我不希望在他们每次查看页面时将其记录为新访问。

我的另一个想法是使用 $_SERVER['HTTP_REFERER'],然后我可以告诉访问者没有从我的网站进行另一个页面浏览,但我不确定这有多可靠。

所以我想知道我们怎样才能做到这一点?

最佳答案

最好的方法是结合使用 IP 地址和 COOKIES。仅保存 IP 地址是不够的,因为当用户使用代理时它可能会经常更改。对于每个页面加载,您可以使用这样的代码

// Get IP address of user
function getUserIP() {    
  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'];
  }
  return $ip;
}

// Check if cookie exists. If not then set new cookie. Return its value
function getUserCookie() {
  if(isset($_COOKIE['visited'])) {
    // cookie is already set
  } else {
    list($usec, $sec) = explode(" ", microtime()); // Micro time!
    $expire = time()+60*60*24*30; // expiration after 30 day
    setcookie("visited", "".md5("".$sec.".".$usec."")."", $expire, "/", "", "0"); 
  }
  return $_COOKIE['visited'];
}

如果没有访问者具有这些值,您可以将这两个值保存到数据库表访问者中,因此您可以说它是唯一的新访问者。如果访问者具有这些值之一,那么它就是回访者,因此您应该更新您的访问表。

但我认为只有一张 table 更好,因为你不认识你的访客。通过单个 sql 查询,您仍然能够区分唯一访客、页面浏览量、访客流量、访问时间等。

关于php - 如何使用 php 和 jquery 跟踪访问者,从综合浏览量中确定唯一访问者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42636845/

相关文章:

google-analytics - 实时检测Google Analytics(分析)异常

php - 使用php + MySQLi取数据时使用while可以吗?

php - 如何对 "private"构造函数进行异常处理?

javascript - 在向上和向下滚动时向 div 添加类

jquery - knockout - 取消变更事件?

objective-c - cocoa 用户界面分析

javascript - 组合/绑定(bind)多个具有不同 id 或类的标签的更改、点击事件

PHP PDO 异常 : SQLSTATE[HY093]

javascript - 使用 jQuery 填充隐藏文本输入

wordpress - Google Analytics(分析)中的着陆页分析和所有页面分析有什么区别