我相信你们都知道这个错误:
Warning: Cannot modify header information - headers already sent by (output started at /homepages/4/d374499247/htdocs/wp-content/themes/tyler/mail.php:1) in /homepages/4/d374499247/htdocs/wp-content/themes/tyler/mail.php on line 34
这是代码:
if (strpos($email,'@') !== false) {
ob_start();
mail($to,$subject,$message,$headers);
header("Location: thankyou.html");
ob_end_flush(); }
有人可以在这里提供任何帮助吗?我只是希望它邮寄()信息,然后转到位置页面
编辑:这是整个代码..
<?php
$to = 'myemail@gmail.com';
$subject = 'בקשת הצטרפות לרשימת תפוצה';
$message =
'בקשת הצטרפות לרשימת תפוצה' . "\n\n" .
'שם: ' . $_REQUEST['name'] . "\n\n" .
'דואר אלקטרוני: ' . $_REQUEST['email'];
$email = $_REQUEST['email'];
$headers = 'From: ' . $email . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/plain; charset=ISO-8859-1";
// server-validation
if (strpos($email,'@') !== false){
mail($to,$subject,$message,$headers);
header("Location: thankyou.html");
} else {
echo "<p class='error'>כתובת הדוא'ל שגויה.</p>";
}
?>
答案 0 :(得分:5)
检查您的网页编码。可能是UTF-8 +(UTF-8 signature)
如果没有,则需要检查空格。
答案 1 :(得分:2)
此错误是由于您在尝试发送标头时已将数据发送到客户端(应首先发送)。强>
最有可能的是,您的文件开头有空格。根据您当前的代码示例,很难确定完全导致问题的原因,但基于错误显示它位于第1行的事实你的文件,我会说它的空白。
答案 2 :(得分:1)
很可能在你的PHP标签之前有某种空格(就像第一行的输出一样)。
header()
之前不能有任何输出,甚至没有空格或换行符。