没有标题仍然是session_start()发送它

时间:2013-11-04 11:52:47

标签: php session

enter image description here我检查了与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();警告消失了

为什么它不在代码中时发送标题......需要帮助来到这里:(

4 个答案:

答案 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会将文件结尾解释为结束<?php

答案 3 :(得分:0)

感谢GordonM和Oswald我在记事本++中检查了“编码”并将编码更改为没有BOM的UTF,它解决了我的问题:)