0

我遇到了旧的标题问题,只是无法让它重定向我该如何解决?

警告:无法修改标头信息 - 标头已发送

<?php if (isset($_POST['email']))
{
  $content = '<html><body>';
  $content .= 'Email Address: '.$_POST['email'].'<br />';
  $content .= 'Enquiry Type: '.$_POST['enquiry'].'<br />';
  $content .= 'Message: '.$_POST['message'].'<br />';
  $content .= 'Telephone Number: '.$_POST['telephone'].'<br />';
  $content .= 'Preferred Contact Method:" '.$_POST['contact-method'] ;
  $content .= '</body></html>';
  $to = 'myemail*email.com';

$subject = 'Website Contact Form ';

$headers = "From: " . strip_tags($_POST['email']) . "\r\n";
$headers .= "Reply-To: ". strip_tags($_POST['email']) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
if (mail($to, $subject, $content, $headers)) {
header('Location:form-submitted.php');
    }

}
?>
<!DOCTYPE html>
<html>
4

7 回答 7

1

这意味着标头已经发送。请试试这个

回声"<meta http-equiv='refresh' content=\"0; url=form-submitted.php\">";

于 2013-06-28T10:05:33.347 回答
0

使用退出();在头功能之后。

header('Location:form-submitted.php');
exit();
于 2013-06-28T10:02:46.270 回答
0

您的电子邮件 ID 无效

$to = 'myemail*email.com';

应该

$to = 'myemail@email.com';// @ in place of *

因此,mailreturn false在上述情况下。

于 2013-06-28T10:03:59.983 回答
0
//Put this code at the top of your page
<?php ob_start(); ?>

你的代码......

//Put this code at the bottom of your page
<?php ob_flush(); ?>
于 2013-06-28T11:52:01.167 回答
0

把这一行放在下面:

 ob_start();

在执行 PHP 文件的开头为我工作。

于 2013-06-28T10:07:46.390 回答
0

使用 JS

if (mail($to, $subject, $content, $headers)) {   
?>
<script>window.location.replace("http://your url/");</script>
<?php 
}
于 2016-08-09T00:36:44.567 回答
0

解释如下:删除所有可能我打印. header("Location: site.php")这是因为 http 标头始终位于请求或响应的顶部。这意味着如果您在设置标头之前回显或打印任何内容到响应中,则会导致如下所示:

HTTP/1.1 404 Not Found
Date: Sun, 18 Oct 2012 10:36:20 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 230
<p>this tag should not be here</p>
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML>
<html>
<head>
   <title>My site</title>
</head>
<body>
   <h1>Hello</h1>
   <p>Lorem ipsum</p>
</body>
</html>

如您在上面看到的<p>元素,可能已经用 php 打印出来了,现在已经破坏了 http 响应。您想使用该header();函数设置的任何内容都会引发错误。

我希望这有帮助:)

于 2018-08-03T19:49:04.473 回答