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

Visitor Hits Counter - Suggested Approach

提问人:Madara's Ghost 提问时间:8/23/2012 更新时间:8/23/2012 访问量:232

问:

最近,我收到了一个朋友的挑战。我以为我会在这里分享它,因为我没有好的解决方案。

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

问题

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

我将如何处理这个问题?我是否应该打破这种做法并更改 GET 请求的服务器?或者我可以实施一些更复杂的计划?

PHP的

评论

0赞 8/23/2012
我想到了谷歌分析。
0赞 Madara's Ghost 8/23/2012
@Dagon:也是,但重点是在现场展示:)
2赞 Del Pedro 8/23/2012
您说的是页面点击量或会话量?
0赞 Madara's Ghost 8/23/2012
@DelPedro:命中,对不起,如果不清楚,我会更新问题。
0赞 Musa 8/23/2012
您可以使用 code.google.com/p/gapi-google-analytics-php-interface 从Google Analytics(分析)中提取数据

答:

0赞 uınbɐɥs 8/23/2012 #1

我记录访问的方法是使用 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

希望这有帮助!

评论

0赞 uınbɐɥs 8/23/2012
然后,如果要显示访问者的数量,则在预置文件中,从数据库中检索该数字,将其设置在变量中,然后可以使用类似 .<div id="visitors"><?php echo $visitors; ?></div>
0赞 uınbɐɥs 8/23/2012
我记录 IP 地址并使用 IP 到位置服务来制作我在我的网站上显示的访问者地图。
0赞 Madara's Ghost 8/23/2012
我没有问怎么做,我问更改GET请求的服务器状态是否是一个好主意。请阅读问题。
3赞 Savageman 8/23/2012 #2

你所做的断言通常是正确的。但在这里,您希望精确跟踪是否有人发出了 GET 请求。因此,对此类请求进行这种处理是有道理的!

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

其他解决方案包括:

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

[编辑]我特别喜欢跟踪图像。使这两种解决方案都更容易。

评论

0赞 Madara's Ghost 8/23/2012
您将如何处理缓存问题?只需在“图像”中添加一个随机的GET变量?
1赞 Savageman 8/23/2012
哼哼。好吧,为什么不呢。但是 HTTP 标头是你的朋友。