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

Php 当代码只运行一次时,为什么我的网站会插入两条记录!,php,mysql,http-headers,Php,Mysql,Http Headers,简单地说,我正在尝试为使用mysql访问php站点的访问者创建一个自定义记录器。在这样做的过程中,我发现我为每个页面加载插入了两个条目 我已经排除了两次意外运行的代码。 我把查询放在每一页上,假设它可以完美地工作。在意识到这会导致出现两个条目后,我感到困惑,从其他页面中删除了查询,只将其保留在索引页面上 利用PHP的$_服务器['HTTP\u REFERER']和$_服务器['PHP\u SELF'],我将这些值插入到日志中。看看我之前在哪里,现在在哪里 假设我在创建页面上,点击了一个名为ind

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

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

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

利用PHP的$_服务器['HTTP\u REFERER']和$_服务器['PHP\u SELF'],我将这些值插入到日志中。看看我之前在哪里,现在在哪里

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

我检查了当我点击一个链接到一个没有记录器的页面时会发生什么,所以我点击进入“创建”页面。我检查了数据库,发现还有一个条目,但讽刺的是,这次只插入了一个条目。这很奇怪,因为创建页面没有记录访问者的代码,它只插入了一个条目。然而,它说referer是'create.php',当前页面是index.php。这与它应该是什么是相反的

做了更多的研究后,我决定观看头条新闻的直播。因此,我使用firefox和IE进行了检查,我意识到页眉得到了我请求的页面,并且总是得到根页面。例如,对create.php的请求返回

GET/create.php HTTP/1.1
GET/style/HTTP/1.1
获取/HTTP/1.1

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

由于create.php页面上没有访客日志,因此日志中没有第一个条目,但一旦加载根页面,就会为create.php创建一个条目,当前页面就是index.php页面,因为它正在加载根页面

因为index.php页面上有一个访问者日志,当我从'create.php'转到'index.php'时,第一个GET创建了一个'create.php'条目作为referer,当前页面是'index.php',但是第二个条目说'index.php'是referer和当前页面

所以我很确定这是我的第二个理由

有人能告诉我为什么每次请求都加载根页面吗?

我在本地使用xampp for mac os x,我知道这可能是默认的favicon。然而,我只是删除了图标,它仍然出现,即使favicon没有显示

我可以提供代码示例和其他内容,这一点似乎无关紧要,因为insert查询可以工作,当我显然只执行一次时,它只会出现两次。

GET/”请求会自动提取index.php

页面上可能有无效的图像SRC url、脚本SRC或链接HREF。这些可能会导致在后台对服务器发出常规的请求,而没有意识到这一点。检查所有HTML的URL,确保它们都是有效的服务器端文件。还可能存在服务器端重定向,将未知文件重定向回主页

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

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

“GET/”请求正在自动提取index.php

页面上可能有无效的图像SRC url、脚本SRC或链接HREF。这些可能会导致在后台对服务器发出常规的请求,而没有意识到这一点。检查所有HTML的URL,确保它们都是有效的服务器端文件。还可能存在服务器端重定向,将未知文件重定向回主页

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


我们需要完整的来源才能真正追踪到这一点。

是的,这是一个愚蠢的问题。但它没有告诉我们你做了什么。你想分享一些可能有用的代码片段吗?向我们展示你的
create.php
文件。你的web服务器已经记录了所有这些内容了是的,这是一个很糟糕的问题。但它没有告诉我们你做了什么。您想分享哪些代码片段可能会有所帮助?向我们展示您的
create.php
文件。您的web服务器已经记录了所有这些内容。好了,就是这样。。。我最终删除了页面内容,把每一行都一一放回原处。它最终归结为我创建的一个脚本,用于从一个目录中获取所有样式表,我猜它没有正确加载一个。非常感谢你。我的大脑因为整天都在研究它而变得迟钝,所以这减轻了很多压力!再次感谢!好吧,就是这样。。。我最终删除了页面内容,把每一行都一一放回原处。它最终归结为我创建的一个脚本,用于从一个目录中获取所有样式表,我猜它没有正确加载一个。非常感谢你。我的大脑因为整天都在研究它而变得迟钝,所以这减轻了很多压力!再次感谢!