PHP 文件执行了两次,但只在 Firefox 中执行
Posted
技术标签:
【中文标题】PHP 文件执行了两次,但只在 Firefox 中执行【英文标题】:PHP files executed twice, but only in Firefox 【发布时间】:2018-09-01 09:21:56 【问题描述】:这真的很奇怪。我有以下页面结构:
index.php
<?php
session_start();
include_once('src/functions.php');
logMe('index');
include_once(TEMPLATES_FOLDER . 'standard/header.php');
[...]
include_once(TEMPLATES_FOLDER . 'standard/footer.php');
?>
header.php
<?php logMe('header'); ?>
<!DOCTYPE html>
<html lang="en">
<head>
[...]
<?php if (isset($_SESSION['accountId'])) : ?>
<script type="text/javascript">
[...]
</script>
<?php endif; ?>
</head>
<body>
[...]
我希望得到 2 个日志行,一个来自 index.php
,一个来自 header.php
(因为 logMe()
函数)。
现在,如果我在 Firefox (61.0.2) 中运行该页面,我会得到 4 个日志。如果我在 Chrome (68.0.3440.106) 中运行它,我会得到 2 个日志。所以在 Firefox 中,它似乎执行了两次。
更奇怪的是,如果我删除 <script>
标签,问题似乎消失了,因为 Firefox 只记录了 2 行。但即使我放回一个空的<script>
标签,它也会记录 4 行!所以问题的关键似乎是这个<script>
标签,但怎么可能呢??
此外,我在footer.php
中也有一个<script>
标签。然后我希望在这种行为之后获得 6 个日志行,但我总是只得到 4 个。只有当我同时删除它们(从页眉和页脚)我得到正确的行为(2 个日志)。
有人知道发生了什么吗?
更新
根据raina77ow 的要求,这是access.log
的区别:
所以 Firefox 有效地请求 ?pageId=0
两次。
【问题讨论】:
您能否检查 Firefox 开发人员工具或服务器日志中的网络面板,以查看请求的具体内容 - 路径等? @raina77ow 在 Chrome 和 Firefox 中我有相同数量的请求:25 @raina77ow 我已经添加了 access.log 详细信息 【参考方案1】:好的,我的 Firefox 安装中似乎有些东西被破坏了。我尝试在安全模式下启动它,但问题没有出现。所以我对其进行了硬重置,现在问题不再出现了。
还是想不出问题和<script>
标签之间有什么联系……
【讨论】:
可能是一些插件出了问题? @raina77ow 这是我检查的第一件事:我安装的唯一插件是防病毒软件(Trend Micro)。但无论如何它已经(并且已经)被禁用了。以上是关于PHP 文件执行了两次,但只在 Firefox 中执行的主要内容,如果未能解决你的问题,请参考以下文章