即时建立我的第一个动态网站。我有一个index.php,它基于以下会话变量是真还是假
if($_SESSION['loggedIn'])
{
include 'logged-in/logged-in.php';
}
else{
include 'not-logged-in/not-logged-in.php';
}
not-logged-in.php显示一些表单,因此您可以登录或注册此调用包含的php文件中的函数。如果login()函数通过mysql登录验证,则设置
$_SESSION['loggedIn'] = 1;
header("Location: ../index.php");
然而,我得到了这个错误...
警告:无法修改标题信息 - 已经发送的标题(/ / / /未登录/未输入/ / em> /index.php:8)第5行的-logged-in.php
抱歉我'''保存我的项目私有的网址。 我来自简单的图形编程背景,所以这对我来说都是新的。任何提示或建议将不胜感激。
答案 0 :(得分:2)
此错误是由于在您致电header()
之前向浏览器输出内容,包括回音,打印等。
我个人不会使用会话变量来存储用户是否登录,因为您可能想要禁用用户,如果他们已经登录,他们仍然可以访问,直到他们的会话到期为止。我喜欢在会话中存储用户名和散列密码,然后使用这些详细信息为每个页面重新运行登录过程。
答案 1 :(得分:1)
当您尝试发送http标头(例如代码中的位置)之后有某种输出时,会发生此错误。检查您的代码并验证您在发送此标头之前是否故意发送任何输出(甚至是session_start())。另外,如果你使用的是php结束标签,请确保后面没有单个空格或换行符,因为它算作输出