0

我的网站上有一个奇怪的问题。每当单击链接时,文件就会被执行两次。我注意到这一点的唯一原因是,当我提交关键字搜索请求时,我将搜索记录在我们的 MySQL 数据库中。数据库总是保存两条记录(有一个时间戳,有时在同一秒内添加记录,但通常相隔一秒)。我知道我是网站上唯一的人,并且查询没有被循环调用。所以我做了一个 fopen($file, 'a') 来查看将添加多少行代码,并且大多数时候添加了两行代码。我可以添加一条记录的唯一方法是连续运行相同的搜索 2-3 次。

所以我唯一能想到的就是我们的网站上有很好的广告。我唯一能想象到的情况是,当我点击链接时,与广告相关的 javascript 也遵循相同的链接。

还有其他绝妙的想法吗?

4

3 回答 3

5

当有没有实际链接的资产(图像、js、css)时,我已经看到了这样的症状,例如:

<img src="" />

在这种情况下,浏览器尝试获取相同的 url,但Accept标题不同。记录一下,这将有助于查看是否是这种情况。

于 2012-05-16T18:37:18.773 回答
1

处理表单时,检查他们是否真的点击了提交按钮,如下所示:

if (isset($_POST['submit']) && $_POST['submit'] == 'submit') {
   // Process form
} else {
   // Just display it
}

这将阻止您处理它两次。您还应该在表单发布后使用 303 重定向进行重定向。

于 2012-05-16T18:44:57.903 回答
0

我应该害怕吗?

我一写这篇文章就注释掉了谷歌广告的代码(并看到了@cilosis 的建议)。

我没有问题了。不过,这完全是谷歌。每次我运行搜索时,这都在我的 apache 访问日志中。

66.249.73.87 - - [16/May/2012:12:38:45 -0500] "GET /search.php?page_num=1&keywords=stylist&city=&state=AL&cat= HTTP/1.1" 200 14185 "-" "Mediapartners-Google"

我很害怕.....

于 2012-05-16T18:49:15.460 回答