警告:无法修改标头信息

时间:2013-07-15 00:00:17

标签: php

我收到此错误: 警告:无法修改标头信息 - 已经发送的标头(输出从/Applications/XAMPP/xamppfiles/htdocs/recover.php开始: 11)在第22行的/Applications/XAMPP/xamppfiles/htdocs/recover.php中

这是我的代码,您可以查看一下:

<?php

include 'core/init.php';
logged_in_redirect();

?>


<h1> Recover </h1>

<?php
if (isset($_GET['success']) === true && empty($_GET['success']) === true) {
?>
    <p>thanks we have emailed you</p>
<?php
} else {
    $mode_allowed = array('username', 'password');
        if(isset($_GET['mode']) === true && in_array($_GET['mode'], $mode_allowed) === true) {
            if(isset($_POST['email']) === true && empty($_POST['email']) === false){
                if (email_exists($_POST['email']) === true) {
                    recover($_GET['mode'], $_POST['email']);
                    header('Location: recover.php?success');
                    exit();
                } else {
                    echo 'we cant find that email in our database';
                }
            }

?>
    <form action="" method="post">
        Please enter your email adress:<br>
        <input type="text" name="email"><br>
        <input type="submit" value="Recover!">


    </form>

<?php
    } else {
        header('Location: index.php');
        exit();
    }
}

?>

我如何修复此问题的任何想法? 提前致谢

1 个答案:

答案 0 :(得分:1)

在PHP输出任何内容后,您无法更改标题信息,重定向。

删除<h1> Recover </h1>会修复错误,但您应重新考虑代码,以便在任何HTML输出之前显示header('Location: recover.php?success');