Php 会话未启动。但仍显示已启动的错误

Php 会话未启动。但仍显示已启动的错误,php,session,Php,Session,我在index.php中包含了login.php和loggedin.php文件 login.php和index.php都没有会话_start();只有loggedin.php有session_start();在里面 但当我打开index.php时,仍然会出现以下错误: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output sta

我在index.php中包含了login.php和loggedin.php文件

login.php和index.php都没有会话_start();只有loggedin.php有session_start();在里面

但当我打开index.php时,仍然会出现以下错误:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/98/10855698/html/symp13/index.php:110) in /home/content/98/10855698/html/symp13/loggedin.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/98/10855698/html/symp13/index.php:110) in /home/content/98/10855698/html/symp13/loggedin.php on line 2
loggedin.php如下所示:

<?php
session_start();
if (isset($_SESSION['username'])) {
echo 'you are logged in as'.' '.$_SESSION["username"];
echo '<form action="upload.php" method="post" enctype="multipart/form-data" name="upload">'.'<input type="file" name="file" /><input type="submit" name="submit" />'.'</form>'; }
else {
echo 'You need to login in with your account for submitting abstract or for applying for tutorials!';
echo 'Click here to'.' '.'<a href="login.php">login</a>';
}
?>

login.php包括一个表单,其操作设置为login_check.php,其中包括会话_start();。但是我不认为这是个问题,因为在提交表格之前它是不能运行的

如果我只在一个单独的文件中运行loggedin.php。它没有显示任何错误

我很困惑。请告诉我如何解决这个问题以及原因

正如上面所说:

要使用基于cookie的会话,必须在 将任何内容输出到浏览器

这意味着在调用
session\u start()
之前必须没有空格,甚至空格。因此,index.php文件必须如下所示:

<?php

  include 'loggedin.php'; //containing session start
  include 'login.php';

  echo 'other output';
?>
more output here

这里有更多的输出
将您的:

<?php ... ?>


在一切之上(身体之上)。它不会打碎任何东西。然后根据需要使用CSS定位。

在任何文件上方是否有HTML或空格?你也应该发布你的
index.php
代码。你能包括index.php吗?“但仍然显示它已经开始的错误”–不,不是这样。请学习阅读错误消息的实际内容。@Fred是的,我确实在php代码@JeevanPatnaik上面有html代码,这很可能是问题所在。上周我也经历了同样的事情,我发现了。尝试将所有HTML放在PHP下面。嘿,谢谢……我阅读了文档,现在明白了!这就是我们都喜欢听到的:Dwhy如果我把session_start放在index.php本身的开头。并从包含的php中删除了会话_start。loggedin php执行起来就像根本没有启动会话一样?是index.php
的第一个字符,但现在我有了其他问题,实际上如果我将会话_start放在index.php本身的开头。并从包含的php中删除了会话_start。loggedin php执行时就像没有在启动会话一样all@JeevanPatnaik保留所有
会话_start()在所有文件中。你为什么要删除它?如果我甚至把它放在顶部,它就是在显示错误line@JeevanPatnaik您的代码还有一个问题,可能是在其他文件中,您没有发布代码。