我的网络服务器表现得很糟糕。似乎它在发送到apache之前执行了两次脚本(PHP)。
我已经运行了这个文件:
<?php
echo '<pre>';
session_start();
$_SESSION['index']++;
echo '<br>';
print_r($_SESSION);
?>
而且我知道++会首先发出通知,但这只是为了调查它是否会运行两次。无论如何,打印的会话显示每次加载页面时索引索引都会增加2。
网络服务器是apache2,php5安装在debian单元上。
任何人都有任何想法?
答案 0 :(得分:5)
echo '<pre>'; //Headers and cookies already sent.
session_start(); //Cannot set cookie anymore, system tries again, I guess
首先启动会话,然后输出任何内容。
尝试将session_start();
置于顶部
答案 1 :(得分:2)
我不能完全感谢这个问题的海报。他的会话测试让我意识到我有几次运行php脚本的问题。
在我的脚本中,我有两个PDO函数,它们通过if-else-construct分开。一个是简单的选择,一个是简单的插入功能。但每次我运行脚本时,两个pdo命令都被执行了。 PDO最终在我的表中写了一行,其中的条目是'public'。
那发生了什么?由于无法找到的HTML代码中的ELEMENTS,我的页面多次发送。在我的情况下,这是一个名为错误的css文件。当我解决了这个问题(在查看代码4小时后)问题就消失了。例如,破碎的图像也会触发相同的事件。
答案 2 :(得分:1)
答案 3 :(得分:0)
我看到同样的行为......第一次页面运行时会出现$ _POST,然后第二次不会出现... ...搜索代码以查找页面可能回发的原因本身又来了。没有用。
在看到上面的用户1601869的回答后,我开始检查。我有一些链接到我还没写过的样式表,所以把它们的骨架放进去了。
事实证明,对我来说,罪魁祸首是:
<link rel="shortcut icon" href="">
这只是一个图标的占位符,导致我的网页中断。我建议如果您遇到同样的问题,请在<HEAD></HEAD>
中查找已损坏的链接!