我检查了与session_start()相关的主题; sry无法找到可以帮助我的东西
session_start();
include "databaseregistration.php";
include "check_function.php";
session_check();
check_function.php包含(用于检查我哪里出错的简化代码)
<?php
function session_check(){
if(!isset($_SESSION['user_title'])){
echo "error";
}
else{
echo "pass";
}
}?>
现在我得到的错误是
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at F:\xampp\htdocs\ourwork\proper pages\homef.php:1) in F:\xampp\htdocs\ourwork\proper pages\homef.php on line 2
你可以看到我还没有发送任何标题,每当我删除session_start();警告消失了
为什么它不在代码中时发送标题......需要帮助来到这里:(
答案 0 :(得分:1)
每个输出都会将标头发送到浏览器。输出可以是几乎所有内容,包括空格。最常见的错误是在php打开标记(<?php
)之前有空格,换行符或制表符。在将任何内容发送到浏览器之前,请确保调用session_start()
。
session_start()
函数会向标题添加信息,以便在用户浏览器中存储Cookie。在cookie中存储会话ID,以检索所需的信息。
答案 1 :(得分:0)
在F:\xampp\htdocs\ourwork\proper pages\homef.php
的第1行输出了一些内容。
请注意,在打开<?php
之前的空格和字节顺序标记也被视为输出。
答案 2 :(得分:0)
尝试从?>
文件中删除最终的check_function.php
。它不是必需的,你可以在它之后无意间有空格或换行符
如果有一个封闭的?>
<?php
答案 3 :(得分:0)
感谢GordonM和Oswald我在记事本++中检查了“编码”并将编码更改为没有BOM的UTF,它解决了我的问题:)