Php 发送电子邮件后的标题位置
我试图在提交表单后将用户重定向到感谢页面,但我的标题位置似乎不起作用(本地或在线)。单击“提交”按钮时不会发生任何事情(但会发送电子邮件) 我的php如下所示:Php 发送电子邮件后的标题位置,php,Php,我试图在提交表单后将用户重定向到感谢页面,但我的标题位置似乎不起作用(本地或在线)。单击“提交”按钮时不会发生任何事情(但会发送电子邮件) 我的php如下所示: <?php $val= $_POST['val']; $toemail='mail@mail.com'; $name = $val['name']; $societe = $val['societe']; $email = $val['email']; $phone = $val['phone']; $msg = $val['m
<?php
$val= $_POST['val'];
$toemail='mail@mail.com';
$name = $val['name'];
$societe = $val['societe'];
$email = $val['email'];
$phone = $val['phone'];
$msg = $val['msg'];
$subject = 'Contact';
$headers = "From: $email \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$message = "<b>Nom : </b>".$name."<br>";
$message .='<b>Societe : </b>'.$societe."<br>";
$message .='<b>Email : </b>'.$email."<br>";
$message .='<b>Telephone : </b>'.$phone."<br>";
$message .='<b>Message : </b>'.$msg;
mail($toemail, $subject, $message, $headers);
header("Location: http://example.com/thankyou.html");
?>
我做错了什么?提前感谢你的帮助
编辑:谢谢你的帮助。如果我打开错误报告,我会得到:
警告:无法修改标题信息-标题已由发送(输出从/path/email.php:12开始)使用header()
只能重定向到同一站点内的页面
你可以尝试使用
header("Location: /thankyou.html");
希望有帮助。问题是,您正在重定向之前发送输出 使用输出缓冲或在新页面上执行
如其他人所述,脚本在尝试发送标头之前发送输出。 解决此问题的最简单方法可能是缓冲
电子邮件()的输出,然后发送标题,如下所示:
ob_start();
mail($toemail, $subject, $message, $headers);
ob_end_clean();
header("Location: http://example.com/thankyou.html");
非常简单的使用下面的方法
ob_start();
退出(标题(“位置:http://example.com/thankyou.html"));
在进行任何输出之前,必须调用发送/修改HTTP头的函数。否则调用将失败。页面上是否有任何错误?或者你得到的是一个空白(白色)页面吗?在header清除不需要的行间距和tryNo错误或空白页面之前,可能会出现一些输出错误,什么也不会发生。我试着消除空白并检查是否有空格,仍然没有。宾果:警告:无法修改标题信息-标题已经由发送(输出开始于/path/email.php:12)如果您错了,我们可以使用heade()重定向到站点外部HTTP/1.1需要一个绝对URI作为参数»位置:包括方案,主机名和绝对路径,但某些客户端接受相对URI
,因此相对URL并不总是必要的…谢谢,但问题仍然存在。是否尝试打开错误?这可能会有所帮助。