访客点击计数器 - 建议的方法

时间:2012-08-22 21:19:41

标签: php

我最近接受了朋友的挑战。以为我会在这里分享,因为我没有很好的解决方案。

假设我的网站需要访问者点击数,每次访问时计数都会永久增加。

问题

使用GET请求更改服务器状态被认为是不好的做法。而且由于我想继续计算进入我网站的用户数量,我必须以某种方式存储状态。

我该如何处理?我应该打破这种做法并在GET请求上更改服务器吗?或者是否有一些我可以推出的更精细的计划?

2 个答案:

答案 0 :(得分:3)

你所做的断言一般都是正确的。但在这里,您需要准确跟踪是否有人发出了GET请求。所以对这些请求做这种处理是有道理的!

与缓存机制结合使用时有点棘手。由于您计算访问者的部分​​不能位于缓存中,因此您始终需要服务器端来跟踪计数。

其他解决方案包括:

  • Google Analytics等外部工具使用带跟踪图像的JavaScript(图像检索是模拟POST请求的一种方式,但无论如何都只是GET),并结合使用Cookie来跟踪唯一身份访问者。
  • 日志分析是另一种选择。 Web服务器可以将文件中的每个请求与其他信息(例如IP地址,用户代理)一起写入。分析访问日志可以是解决方案。

[edit]我特别喜欢跟踪图片。使两种解决方案都更容易。

答案 1 :(得分:0)

我记录访问的方法是使用PHP的auto_prepend_fileauto_append_file。在这些文件中你有这样的东西:

error_reporting(0);
$conn = mysqli_connect('localhost', 'visitor_counter', 'password', 'visitors');
$ip = mysqli_real_escape_string($conn, $_SERVER['REMOTE_ADDR']);
$query = "UPDATE `visits` SET `count` = `count` + 1 WHERE `ip` = '$ip'";
mysqli_query($conn, $query);

我使用共享主机,所以我必须使用这样的.htaccess文件:

php_value auto_prepend_file /php/head.php

希望这有帮助!