未检测到php会话

未检测到php会话,php,Php,我有一个登录页面,我注册了两个会话用户名和密码。然后重定向到另一个页面。浏览本页一次 $_SESSION['username'] = ""; $_SESSION['password'] = ""; 登录检查后,我将进入下一页检查会话是否已注册 session_start(); if(isset($_SESSION["username"]){ continue }else go back to login page 登录后,我想转到另一个页面,根据会话变量是否设置,我会在页面上显示不同

我有一个登录页面,我注册了两个会话用户名和密码。然后重定向到另一个页面。浏览本页一次

$_SESSION['username'] = "";
$_SESSION['password'] = "";
登录检查后,我将进入下一页检查会话是否已注册

session_start();

if(isset($_SESSION["username"]){


continue

}else go back to login page
登录后,我想转到另一个页面,根据会话变量是否设置,我会在页面上显示不同的内容

所以在galery页面上我是这样做的

<?php 
session_start();

?>
在这一页的最上面,我是这样做的

<?php 
session_start();

?>
这会弄乱我的页面的显示方式。有什么想法吗?我有会话_start();在佩奇的恳求下,我不知道为什么会发生这种事。有什么想法吗


您需要确保在调用
会话启动()之前,如果有任何内容输出到浏览器,则会出现该错误。例如,您不能执行以下操作:

<?php

echo "Test";

session_start();
 <?php session_start();

库页面是否包含在其他文件中

<?php

// lots of php code

include('/path/to/gallery.php');

?>


如果在会话_start()之前有任何内容发送到浏览器;它将创建此错误。

会话是一个标头,任何输出后都无法发送标头(即使是单个空格)。您有两个选项,将session_start()放在任何输出之前,或者您也可以使用输出缓冲,这允许您在输出之后发送头

将其放在脚本的顶部

ob_start();
最后呢

echo ob_get_clean();

错误消息的其余部分(您未发布的部分)可能重复(参考问题/答案),告诉您输出从哪一行开始。使用错误消息提供的信息来解决问题。在分配这两个会话变量之前,您是否执行了会话\u start()?是的,我在分配这两个变量之前执行了会话\u start()。未写入任何内容。该文件是否包含在其他文件中?这是一个非常有名的错误,每次我看到它问最终的响应是“oops,找到空格来自哪里”。没有gallery.php是它自己的文件。而且里面什么都没有。
echo ob_get_clean();