php – 无法获取登录页面以重定向到安全页面

我有一个使用php创建的登录页面,我遇到问题是在我正确登录后将其带到管理页面.我知道我使用的登录是正确的,因为我刚创建它,如果它是错的,它应该告诉我.但是,一旦我登录,整个页面就会变成空白,网址显示我仍然在登录页面而不是管理页面.

我检查了错误日志,它说“PHP警告:无法修改标题信息 – 标题已经发送(输出从/admin/login.php:6开始)/第4行/admin/includes/functions.php”

这是错误日志所指的代码:

    function redirect_to($new_location) {
    header("Location: " . $new_location);
    exit;
}

我不明白错误指出了什么.在我学习如何创建登录页面和管理页面之前,我已经使用过这个确切的代码,当我测试它然后在我的计算机上使用WAMP时,我没有遇到任何问题.现在我把它放在我网站的服务器上,这个错误就出现了.我不知道从哪里开始排除故障,因为如果我取出该功能,那么它根本不会重定向.任何帮助将是超级赞赏!

这是我用于登录页面的主要代码,如果这有帮助:

<?php require_once("includes/session.php"); ?>
<?php require_once("includes/db_connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php require_once("includes/validation_functions.php"); ?>

<?php
$username = "";
if (isset($_POST['submit'])) {
// Process the form

// validations
$required_fields = array("username", "password");
validate_presences($required_fields);

if (empty($errors)) {
    // Attempt Login

    $username = $_POST["username"];
    $password = $_POST["password"];

    $found_admin = attempt_login($username, $password);

    if ($found_admin) {
            // Success
            // Mark user as logged in
            $_SESSION["admin_id"] = $found_admin["id"];
            $_SESSION["username"] = $found_admin["username"];
            redirect_to("http://thehummingbirdplace.com/admin/admin.php");
    } else {
            // Failure
            $_SESSION["message"] = "Username/password not found.";
    }
}
} else {
// This is probably a GET request

}   // end: if (isset($_POST['submit']))

?>

<?php $layout_contect = "admin"; ?>
<?php include("includes/layouts/header.php"); ?>
<div id="main">
<div id="navigation">
    &nbsp;
</div>
<div id="page">
    <?php echo message();  ?>
    <?php echo form_errors($errors); ?>

    <h2>Login</h2>
    <form action="login.php" method="post">
        <p>Username:
            <input type="text" name="username" value="<?php echo htmlentities($username); ?>" />
        </p>
        <p>Password:
            <input type="password" name="password" value="" />
        </p>
        <input type="submit" name="submit" value="Submit" />
    </form>
 </div>
</div>

<?php include("includes/layouts/footer.php"); ?>
最佳答案
问题是,在将任何输出发送到浏览器之前应该调用头函数.

尝试使用它代替header():

echo '<meta HTTP-EQUIV="REFRESH" content="0; url='.$new_location.'">';

转载注明原文:php – 无法获取登录页面以重定向到安全页面 - 代码日志