我正在使用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" . "rn";
$headers .= "Content-type:text/html;charset=UTF-8" . "rn";
// More headers
$headers .= 'From: <contact@ghanalifestore.com>' . "rn";
mail($to,$subject,$message,$headers);
header('Location: reset.php?username='.$username);
exit();
}else {
//statement
}
基于stackoverflow的此答案,我认为该错误来自变量$message
中的HTML代码。我真的不知道如何修改该变量的内容以避免错误。
请帮助我解决这个问题。
ob_start();
html也发送输出,这就是为什么这发生的原因,请使用ob_start();在您的代码中,希望这能解决您的问题。
来自php文档:
请记住,必须在发送任何实际输出之前通过普通HTML标签,文件中的空白或php。
所以在任何其他类型的输出之前移动header('Location: reset.php?username='.$username);
。
顺便说一句,这个问题已经回答:
- 如何修复"已经发送的标题"。PHP中的错误
- php标头重定向不起作用
只需将您的代码更改为echo'window.location =" dashboard.php?id = 40";';然后它将工作
更改您的代码: -
echo'window.location =" username ='。$ username";';
exit();
我拔出头发,试图在PHP代码中找到此问题,只是发现清除缓存(Firefox)删除了错误。如果您要更改代码,复制文件等。您的浏览器可能会感到非常困惑,以便每当您有这样的错误或任何涉及读取代码的错误,并且您在屏幕上观察不规则或混淆日志错误,请务必确保清除缓存并重新启动浏览器作为可能的补救措施。