记录Uniqie文章浏览量的最有效方法是什么?


what is the most effective way to keep records of number of uniqie article views

我正在尝试使用codeigniter创建一个基于文章的网站。当请求从数据库中获取任何文章以供查看时,我使用以下代码在名为"hits"的单独表中标记每篇文章的唯一视图数。

mysql_query("INSERT INTO hits(ip,article_slug,hitcount) 
             VALUES('$ip_address','$id',1)
           ON DUPLICATE KEY UPDATE hitcount=hitcount+0");

我获取用户的 IP 地址并从 $this->uri->segment(3) 中获取 article_slug 的值;然后运行上面的 MySQL 查询。

我在这里使用 IP 地址来获取唯一视图的数量,但我突然想到有几个人可能使用相同的 IP 地址。因此,在这种情况下,我上面的查询似乎没有效果。

所以我想知道最有效的方法是什么。我的一个朋友正在谈论使用 cookie 而不是 IP 地址来做到这一点。你认为这是一个好主意还是有更好的方法?

你能告诉我如何做到这一点吗?

提前致谢:)

我建议使用Google Analytics并设置仅跟踪文章浏览量的自定义报告。这将为您提供所需的见解以及更多内容,并且可以避免计算机器人(如Google,Bing或SPAMer)。

但是,如果您坚决想自己跟踪用户,我建议您在一个字段中跟踪 IP 地址,在另一个字段中跟踪会话 ID。

session_start();
$user['ip']  = $_SERVER['REMOTE_ADDR'];
$user['sid'] = session_id();
<</div> div class="answers">

使用cookie背后的原因是,如果一组用户在代理后面,您将为所有阅读您文章的用户获得相同的IP地址,这是错误的。

因此,您可以使用两者的组合,这样您就可以获得更好的结果。您可以使用 cookie 或会话。但是,如果您使用 cookie 并为其提供大约一年或更长时间的有效期,并且如果您为 cookie 指定一些唯一的哈希(可能是日志表主键的 md5),那么您可以很好地跟踪用户。

如果您不明白我的意思,请告诉我。