Php 访客点击反建议方法

Php 访客点击反建议方法,php,Php,我最近收到一位朋友的挑战。我想我会在这里分享,因为我没有好的解决方案 假设我的网站需要一个访问者点击数,每次访问的次数都会永久增加 问题 使用GET请求更改服务器状态被认为是不好的做法。因为我想统计进入我网站的用户数量,所以我必须以某种方式存储状态 我将如何处理这个问题?我是否应该打破这种做法,在GET请求时更改服务器?还是有更详细的计划可以实现?我记录访问的方法是使用PHP的auto\u prepend\u文件或auto\u append\u文件。在这些文件中,您有如下内容: error_re

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

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

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


我将如何处理这个问题?我是否应该打破这种做法,在GET请求时更改服务器?还是有更详细的计划可以实现?

我记录访问的方法是使用PHP的
auto\u prepend\u文件
auto\u append\u文件
。在这些文件中,您有如下内容:

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);
php_value auto_prepend_file /php/head.php
我使用共享主机,因此必须使用
.htaccess
文件,如下所示:

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);
php_value auto_prepend_file /php/head.php

希望这有帮助

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

当与缓存机制结合使用时,这只是有点棘手。因为计算访问者的部分不能在缓存中,所以始终需要服务器端来跟踪计数

其他解决办法包括:

  • 像Google Analytics这样的外部工具使用带有跟踪图像的JavaScript(图像的检索是模拟POST请求的一种方式,但它只是获取而已),结合cookie只跟踪唯一的访问者
  • 日志分析是另一种选择。Web服务器可以将每个请求以及其他信息(如IP地址、用户代理)写入文件中。分析访问日志可能是解决方案

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

我想到了谷歌分析。@达贡:也是这样,但关键是要在网站上显示:)你说的是页面点击或会话?@DelPedro:hits,对不起,如果不清楚,我会更新问题。如果你想显示访问者数量,你可以从谷歌分析中提取数据,然后在预先设置好的文件中,您从数据库中检索号码,将其设置为变量,然后您可以使用类似于
的方法。我记录IP地址,并使用IP到位置服务制作访客地图,显示在我的网站上。我没有问如何做,我问在GET请求时更改服务器状态是否是个好主意。请阅读问题。您将如何处理缓存问题?只需在“图像”中添加一个随机GET变量即可?哼。不,为什么不呢。但是HTTP头是您的朋友。