未检测到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();