为什么我的PHP页面查看跟踪器不起作用

时间:2012-01-14 19:36:14

标签: php sql tracking

我有一个简单的页面视图跟踪器,它使用PHP和MySQL的组合来保持页面刷新次数的运行记录。没有复杂的cookie我只需要知道发生的原始数字刷新。

看起来像这样......

$link = mysql_connect('**********', '*********', '***********');
if (!$link)
{
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("**********", $link);

$query = mysql_query("select value from settings where title like 'search_number'");
$result = mysql_fetch_array($query);
$search_number = $result["value"];
$new_search_number = $search_number + 1;
mysql_query("update settings set value='$new_search_number' where title like 'search_number'");

此代码似乎适用于我能够运行的所有测试,但在实时网站上它返回的数字非常高。根据雅虎,我们平均每天查询400-500个查询,“我们使用搜索老板”,但页面跟踪器每天报告8900多个查询。谷歌分析证实了雅虎的号码。由于其简单性,我看不出这段代码会如何失败。我希望有人可以了解正在发生的事情。

2 个答案:

答案 0 :(得分:2)

Bots会比您想象的更频繁地点击您的页面。您可以与服务器日志进行比较,我怀疑您会看到很多页面请求。

此外,Google Analytics在客户端工作,需要JavaScript,并不总是运行。预计这将占据页面浏览量的10%左右。尽管如此,大部分差异在于Google Analytics会从机器人中过滤掉大量随机点击,因为几乎没有机器人会运行分析代码。

另一方面,您进行查询的方式有点不稳定。我建议学习如何使用PDO进行准备好的查询,以避免SQL注入攻击。

答案 1 :(得分:1)

直接在MySQL中更新值,否则同意的脚本将覆盖彼此的值:

mysql_query("update settings set value=value + 1 where title like 'search_number'");