gpt4 book ai didi

php - 当代码只运行一次时,为什么我的网站会插入两条记录!

转载 作者:行者123 更新时间:2023-11-29 04:57:10 25 4
gpt4 key购买 nike

简单地说,我正在尝试为使用 mysql 的 php 站点的访问者创建一个自定义记录器。在这样做的过程中,我发现我为每个页面加载插入了两个条目。

我已经排除了意外运行两次的代码。

我将查询放在每个页面上,并假设它可以完美运行。在意识到它导致出现两个条目后,我感到困惑并从其他页面中删除了查询,只将其保留在索引页面上。

利用 PHP 的 $_SERVER['HTTP_REFERER'] 和 $_SERVER['PHP_SELF'],我将值插入到日志中。看看我之前和现在的位置。

假设我在创建页面上,我单击了指向名为 index.php 的“主页”页面的链接。数据库中的条目会说 referer 是“create.php”,当前页面是“index.php”。但是,将插入第二个条目,指出 referer 是“index.php”,当前页面是“index.php”

我检查了在没有记录器的情况下单击指向页面的链接时会发生什么,因此我单击以转到“创建”页面。我检查了数据库,还有另一个条目,但具有讽刺意味的是,这次只插入了一个条目。这很奇怪,因为创建页面没有代码来记录访问者,它只插入一个条目。然而,它说 referer 是“create.php”,当前页面是 index.php。这与它应该是的倒退了。

做更多研究后,我决定研究观看标题直播。所以我检查了使用 firefox 和 IE,我意识到标题获取我请求的页面并且也总是获取根页面。例如,对 create.php 的请求返回..

获取/create.php HTTP/1.1
获取/样式/HTTP/1.1
获取/HTTP/1.1

我理解第一个 GET,对于我请求的页面,我理解第二个 GET 外部样式表。最后一个让我感到困惑,尽管它似乎证实了我得到重复条目的原因。

因为在 create.php 页面上没有访问者日志,所以没有日志的第一个条目,但是一旦它加载根页面,就会为 create.php 创建条目作为引用,当前页面是index.php 页面,因为它正在加载根页面。

由于 index.php 页面上有一个访问者日志,当我从“create.php”转到“index.php”时,第一个 GET 创建一个“create.php”条目作为引用和当前页面是“index.php”,但第二个条目说“index.php”是引用者和当前页面。

所以我很确定正是这个推理让我获得了第二个条目。

谁能告诉我为什么它在每次请求时都加载根页面?

我在本地使用 xampp for mac os x,我知道它可能是默认的图标。但是,我刚刚删除了该图标,它仍然出现,即使该图标不显示。

我可以提供代码示例和其他东西,在这一点上似乎无关紧要,因为插入查询有效,它只出现两次,而我显然只执行一次。

最佳答案

“GET/”请求自动拉取 index.php。

页面上某处可能存在无效的图像 SRC url、脚本 SRC 或链接 HREF。这些可能会在没有意识到的情况下在后台对服务器发出看起来很正常的请求。检查所有 HTML 的 URL 并确保它们都是有效的服务器端文件。还可能存在将未知文件重定向回主页的服务器端重定向。

或者您有一些正在执行 ajax 请求的 JavaScript(可能是广告?)。

我们需要完整的源代码才能真正追查到这一点。

关于php - 当代码只运行一次时,为什么我的网站会插入两条记录!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5571275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com