无法创建换行符

时间:2012-09-12 06:23:58

标签: php

我一直在尝试在邮件正文中创建换行符,但它无效。正文中的所有文字都在一行中。

<?php
if ($_POST["email"]<>'') {
    $ToEmail = 'demo@localhost.com';
    $EmailSubject = 'Site contact form';
    $header = "MIME-Version: 1.0" . "\r\n";
    $header .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
    $header .= "From: ".$_POST["email"]."\r\n";
    $header .= "Reply-To: ".$_POST["email"]."\r\n";
    $message = "Name: ".$_POST["name"]."\r\n";
    $message .= "Email: ".$_POST["email"]."\r\n";
    $message .= "Comment: ".nl2br($_POST["comment"])."";
    mail($ToEmail, $EmailSubject, $message, $header) or die ("Failure");
?>
Your message was sent
<?php
    } else {
?> 
Sorry message was not sent
<?php
    };
?>

3 个答案:

答案 0 :(得分:1)

更改这些行:

$message = "Name: ".$_POST["name"]."\r\n";
$message .= "Email: ".$_POST["email"]."\r\n";
$message .= "Comment: ".nl2br($_POST["comment"])."";

对此:

$message = "Name: ".$_POST["name"]."<br />";
$message .= "Email: ".$_POST["email"]."<br />";
$message .= "Comment: ".nl2br($_POST["comment"])."";

您对nl2br有正确的想法,但您的消息也是“名称:”和“电子邮件:”部分 - 这些行也需要是HTML行,因为您要发送HTML电子邮件。

您的代码易受攻击

作为旁注,你应该真正清理你的输入。只是将$_POST值转储到电子邮件中是非常危险的;它离开了你EXTREMELY vulnerable to attacks

答案 1 :(得分:0)

\ n不会在这里工作

您要发布到HTML页面

您可以使用<br />

希望得到帮助

答案 2 :(得分:0)

而不是\r\n使用<br />因为\r\n无法转换为html标记。