Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 发送电子邮件后的标题位置_Php - Fatal编程技术网

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如下所示:

<?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并不总是必要的…谢谢,但问题仍然存在。是否尝试打开错误?这可能会有所帮助。