0

メッセージの本文に改行を作成しようとしていますが、機能していません。本文のすべてのテキストが 1 行で表示されます。

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

3 に答える 3

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たが、メッセージは「Name:」と「Email:」の部分でもあります。HTMLメールを送信するため、これらの行もHTML行である必要があります。

あなたのコードは脆弱です

ちなみに、あなたは本当にあなたの入力を浄化しているべきです。値を電子メールにダンプするだけ$_POSTでは、非常に危険です。それはあなたを攻撃に対して非常に脆弱なままにします。

于 2012-09-12T06:33:43.057 に答える
0

\n ここでは機能しません

あなたはhtmlページに投稿しています

あなたが使用することができます<br />

助けてくれることを願っています

于 2012-09-12T06:27:39.080 に答える
0

\r\n 使用する 代わりに、<br />html\r\nタグに変換されないためです。

于 2012-09-12T06:29:05.437 に答える