【发布时间】:2013-10-08 23:46:05
【问题描述】:
我在 php 和 mysql 中创建了一个简单的登录系统,但我不断收到错误消息,提示标头已经发送,使用 ob_start 解决了这个问题,但我不确定我是否应该在之后在页脚使用 ob_clean?
另外,当我登录到帐户页面时出现错误,说标题已在上一个页面中发送 - > header("Location: account.php");但是我必须在用户登录时重定向用户。
我的登录页面是这样的
require_once('models/init.php'); // db connection and other functions
include('header.php'); // some html code for the header, with one line php-function to check if user is logged in, if so show "home" tab instead of "login"
{
php code to check if username/pass matches etc, and if so redirect to account page
header("Location: account.php");
}
echo "<form>" // display the login form
include("footer"); // including footer, some html/js code.
如果我在 header.php 文件中使用 ob_start,则上面的代码有效。但是之后我应该在 footer.php 文件中使用 ob_clean 吗?
对不起,如果有什么不清楚的地方,英语不是我的第一次萎靡
谢谢!
【问题讨论】:
-
为什么不把登录检查放在
header.php包含上面? -
这是我尝试的第一件事,但我仍然收到错误消息,提示标题已输出。此外,如果我这样做,ob_start 即使在那时也能解决问题
-
不,最佳做法是删除
header()之前的空格。 -
谢谢 我会记住这一点,但是当使用 ob_start 时,我应该在之后使用 ob_clean 例如在页脚中吗?手册对我来说似乎有点不清楚,这就是我问的原因