这真是太奇怪了。我有以下页面结构:
的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>
标签,但它怎么可能?
此外,我在<script>
也有一个footer.php
标签。然后我希望在这种行为后获得6个日志行,但我总是只得到4.只有当我同时删除它们(从页眉和页脚)我得到正确的行为(2个日志)。
有人知道发生了什么吗?
更新
根据raina77ow请求,这是access.log
的差异:
所以Firefox有效地要求?pageId=0
两次。
好吧,好像我的Firefox安装中有些东西被破坏了。我尝试在安全模式下启动它,问题没有显示出来。所以我对它进行了硬重置,现在问题不再显示了。
仍然想不出问题和<script>
标签之间的任何联系...