PHP - 无法修改标头信息 - 标头已发送(输出开始于

新手上路,请多包涵

我正在使用 PHP,我收到了这条消息

无法修改标头信息 - 标头已发送(输出开始于

执行如下代码后:

 <?php
    if (condition) {

        if (condition) {
            //Statement
        }

        $to = $_POST['email'];
        $subject = "Registration Confirmation";

        $message = '
                <html>
                    <head>
                        <title>'.$subject.'</title>
                    </head>
                </html>
            ';

        // Always set content-type when sending HTML email
        $headers = "MIME-Version: 1.0" . "\r\n";
        $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

        // More headers
        $headers .= 'From: <contact@ghanalifestore.com>' . "\r\n";

        mail($to,$subject,$message,$headers);

        header('Location: reset.php?username='.$username);
        exit();

    }else {
        //statement
    }

根据 Stackoverflow 的回答,我认为错误来自变量 $message 中的 HTML 代码。我真的不知道如何修改该变量的内容以避免错误。

请帮我解决这个问题。

原文由 Prince 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 375
2 个回答

ob_start();

html 也在发送输出,这就是发生这种情况的原因,所以请使用 ob_start();在你的代码之上,希望这能解决你的问题。

原文由 Anay Pareek 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏