首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只跟踪独立访问者?

只跟踪独立访问者?
EN

Stack Overflow用户
提问于 2010-10-23 09:11:51
回答 7查看 28K关注 0票数 16

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

我怎么才能只跟踪唯一的访问者呢?我的点击量是假的,因为它可以被同一个人刷新,点击量会上升。

这是我的资料来源:

代码语言:javascript
复制
<?php
 $hits = file_get_contents("./client/hits.txt"); 
 $hits = $hits + 1; 

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

 print $hits; 

?>

我真的不知道我该怎么做cookie检查。有没有办法检查IP地址?或者我能做些什么?

谢谢,StackO。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-10-23 09:14:57

最简单的方法是cookie检查。

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

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

注意:创建MySQL表时,请将IP地址字段指定为关键字。

代码语言:javascript
复制
<?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;
  }
?>
票数 19
EN

Stack Overflow用户

发布于 2010-10-23 09:42:39

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

我没有重新发明轮子,而是使用了现成的解决方案。出于商业原因,我避免使用Google Analytics (我不想让Google知道我的网站统计数据--他们最感兴趣的不是我)。它们可能适用于非商业网站,或者如果你不使用谷歌做广告的话。也有几十种选择。例如,我使用Getclicky.com

票数 4
EN

Stack Overflow用户

发布于 2010-10-23 09:16:36

PHP在基本级别上,您可以通过使用property

  • Consider
  1. 设置cookie或使用会话来获取客户端的IP地址,尽管这可以通过删除cookie或拒绝cookie而失败。有关更多信息,请参阅https://coveryourtracks.eff.org/

setcookie文档。

  • 还有其他浏览器指纹识别方法--请查看您可以在PHP中使用的所有不同数据
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4001973

复制
相关文章

相似问题

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