从代码中可以看出,用户首先输入名称和消息,然后单击"发送".问题是文本区域.当我进行换行时,我收到的电子邮件中仍然没有任何换行符.
<?php
$to = "abc@xyz.com";
$subject = "Message from contact form";
//begin of HTML message
$message = <<<EOF
<html>
<body>
<b>Name:</b><br>
{$_POST['name']}
<br>
<b>Message:</b><br>
{$_POST['message']}
</body>
</html>
EOF;
//end of message
$header = "MIME-Version: 1.0" . "\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$header .= "from:abc@xyz.com";
mail($to, $subject, $message, $header);
echo "Email sent!";
?>
<form action="sendmail.php" method="post">
Name: <br>
<input type="text" name="name" style="width: 200px;"> <br><br>
Message: <br>
<textarea name="message" style="width: 200px; height: 100px;"></textarea> <br><br>
<input type="submit" value="Send">
</form>
Run Code Online (Sandbox Code Playgroud)
Álv*_*lez 12
HTML就是这样的.无论您Enter在HTML源中访问了多少次,浏览器都只会在有HTML标记时显示换行符.
您可以使用nl2br()插入此类标记.您还希望使用htmlspecialchars()转义原始输入.
编辑:要复制和粘贴的代码:
$name = htmlspecialchars($_POST['name']);
$message = nl2br(htmlspecialchars($_POST['message']));
//begin of HTML message
$message = <<<EOF
<html>
<body>
<b>Name:</b><br>
{$name}
<br>
<b>Message:</b><br>
{$message}
</body>
</html>
EOF;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7351 次 |
| 最近记录: |