仅跟踪唯一身份访问者?

2022-08-31 00:46:58

目前我有一个名为“hits.php”的文件,在任何页面上,我都想跟踪我只使用的页面点击量。<?php include("hits.php"); ?>

如何仅跟踪唯一身份访问者?我的命中率是错误的,因为它可以被同一个人刷新并且命中率上升。

这是我的来源:

<?php
 $hits = file_get_contents("./client/hits.txt"); 
 $hits = $hits + 1; 

 $handle = fopen("./client/hits.txt", "w"); 
 fwrite($handle, $hits); 
 fclose($handle); 

 print $hits; 

?>

我真的不知道我怎么能做饼干检查...有没有办法检查IP?或者我该怎么办?

谢谢斯塔科。


答案 1

最简单的方法是 cookie 检查。

更好的方法是创建一个 SQL 数据库并将 IP 地址分配为主键。然后,每当用户访问时,您都会将该IP插入到数据库中。

  1. 创建一个包含在所有页面上的函数,该函数检查您可以为其分配所需的任何“标志”。$_SESSION['logged']
  2. 如果返回“false”,则将其IP地址插入MySQL数据库。$_SESSION['logged']
  3. 设置为“true”,这样就不会浪费资源多次记录 IP。$_SESSION['logged']

注意:创建MySQL表时,请将IP地址字段分配为密钥。

<?php 
  session_start();
  if (!$_SESSION['status']) {
    $connection = mysql_connect("localhost", "user", "password");
    mysql_select_db("ip_log", $connection);

    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO `database`.`table` (IP) VALUES ('$ip')");

    mysql_close($connection);
    $_SESSION['status'] = true;
  }
?>

答案 2

没有完美的解决方案,但前两种方法(IP地址和/或cookie)是最可靠的,组合可能会更好。

我没有重新发明轮子,而是使用了现成的解决方案。出于商业原因,我避开了Google Analytics(我不想让Google知道我的网络统计数据 - 他们的最大利益不是我的)。对于非商业网站,或者如果您不使用Google进行广告宣传,它们可能很好。还有几十种替代方案。例如,我使用 Getclicky.com


推荐