无法创建换行符


Unable to create linebreak

我一直试图在消息正文中创建换行符,但它不起作用。正文中的所有文本都在一行中。

<?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
    };
?>

更改这些行:

$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值转储到电子邮件中是极其危险的;它让你极易受到攻击。

''n在这里不起作用

您正在发布到html页面

你可以使用<br />

希望对有所帮助

使用'r'n而不是<br />,因为'r'n不会转换为html标记。