定义 header 中断后不再工作
After define the header breaks dont work anymore
在我使用 UTF-8 定义 PHP header 之后,我对 $msg 的中断不再起作用。
问题出在哪儿?还有其他休息的方法吗?
谢谢!
代码:
<?php
$username = $_POST['name'];
$lastname = $_POST['lastname'];
$useremail = $_POST['mail'];
$fon = $_POST['phone'];
$usermsg = $_POST['nachricht'];
$myemail = "Mail@XY";
$msg = "Antwort an: $useremail\n". "Name: $username $lastname \n". "Telefonnummer: $fon \n". "Nachricht: $usermsg";
$subject = "Neue Nachricht vom Kontaktformular";
$headers = 'Content-type: text/html; charset=utf-8'. "\r\n"
.'From: ' . $myemail . "\r\n";
if(empty($username)||empty($useremail)||empty($usermsg)){
header("location:index.html?error");
}
else{
$to = "Mail@XY";
mail($to, $subject, $msg, $headers);
}
?>
不是 utf-8
造成的,而是 text/html
。
您是在告诉接收邮件客户端解析电子邮件并将其显示为 HTML 文档。如您所知,在 HTML 中使用 <br>
tag 指定换行符。 HTML 渲染引擎不会注意到 \n
或 \r\n
- 这些仅在 plain-text 文档中有用。
这个:
$msg = "Antwort an: $useremail<br>". "Name: $username $lastname <br>". "Telefonnummer: $fon <br>". "Nachricht: $usermsg";
应该修复它。
$msg = "Antwort an: $useremail\n". "Name: $username $lastname \n". "Telefonnummer: $fon \n". "Nachricht: $usermsg";
如果您的目标是HTML-mail格式,$msg
中的\n
必须替换为HTML标签<br>
。
$msg = "Antwort an: $useremail<br>". "Name: $username $lastname<br>". "Telefonnummer: $fon<br>". "Nachricht: $usermsg";
如果您的目标是 text-mail 格式,请尝试 PHP_EOL 或 \r\n
而不是 $msg
.
中的 \n
在我使用 UTF-8 定义 PHP header 之后,我对 $msg 的中断不再起作用。 问题出在哪儿?还有其他休息的方法吗?
谢谢!
代码:
<?php
$username = $_POST['name'];
$lastname = $_POST['lastname'];
$useremail = $_POST['mail'];
$fon = $_POST['phone'];
$usermsg = $_POST['nachricht'];
$myemail = "Mail@XY";
$msg = "Antwort an: $useremail\n". "Name: $username $lastname \n". "Telefonnummer: $fon \n". "Nachricht: $usermsg";
$subject = "Neue Nachricht vom Kontaktformular";
$headers = 'Content-type: text/html; charset=utf-8'. "\r\n"
.'From: ' . $myemail . "\r\n";
if(empty($username)||empty($useremail)||empty($usermsg)){
header("location:index.html?error");
}
else{
$to = "Mail@XY";
mail($to, $subject, $msg, $headers);
}
?>
不是 utf-8
造成的,而是 text/html
。
您是在告诉接收邮件客户端解析电子邮件并将其显示为 HTML 文档。如您所知,在 HTML 中使用 <br>
tag 指定换行符。 HTML 渲染引擎不会注意到 \n
或 \r\n
- 这些仅在 plain-text 文档中有用。
这个:
$msg = "Antwort an: $useremail<br>". "Name: $username $lastname <br>". "Telefonnummer: $fon <br>". "Nachricht: $usermsg";
应该修复它。
$msg = "Antwort an: $useremail\n". "Name: $username $lastname \n". "Telefonnummer: $fon \n". "Nachricht: $usermsg";
如果您的目标是HTML-mail格式,$msg
中的\n
必须替换为HTML标签<br>
。
$msg = "Antwort an: $useremail<br>". "Name: $username $lastname<br>". "Telefonnummer: $fon<br>". "Nachricht: $usermsg";
如果您的目标是 text-mail 格式,请尝试 PHP_EOL 或 \r\n
而不是 $msg
.
\n