我在PHP中编写了一个联系表单,我希望在发送的消息中包含段落,这样用户就必须写入某些段落而不只是一个文本块。
我试图将message
分成多个textareas
,但我不知道如何调整PHP代码,以便这些textareas
将以正确的顺序发送到一个message
内。每个textarea
sh可以提出一个段落。
这是我的PHP:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: mywebsite.com';
$to = '[email protected]';
$subject = 'subject line';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\r\n";
$headers .= 'From: '. $email. "\r\n" .
$headers .= "Reply-To: ". $email. "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();
$status = mail($to, $subject, $message, $headers);
if ($status) {
echo '<p style="color: white">Your Message was sent!</p>';
} else {
echo '<p style="color: white">Something went wrong. Please try again.</p>';
}
?>
这是我的HTML:
<div class="contact-form">
<form id="contact-form" method="post" action="contact-form-handler.php">
<input name="name" type="text" class="form-control" placeholder="Your Name" required>
<br>
<input name="email" type="email" class="form-control" placeholder="Your Email">
<br>
<textarea name="message" class="form-control" placeholder="Message" rows="30" required></textarea><br>
<input type="submit" class="form-control" value="SEND MESSAGE">
</form>
</div>
https://www.php.net/manual/en/function.nl2br.php
当您使用nl2br时,您可以将“\ n”从textarea更改为“ “。您可以发送内容类型:文本/普通邮件,而不必将换行符转换为 标签。
我没有在你的代码中看到多个textareas所以我猜nl2br是你正在寻找的功能。
我补充说:
$message = nl2br($message); // Inserts HTML line breaks <br />
这应该插入HTML换行符。
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: mywebsite.com';
$to = '[email protected]';
$subject = 'subject line';
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html\r\n";
$headers .= 'From: ' . $email . "\r\n" .
$headers .= 'Reply-To: ' . $email . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();
$message = nl2br($message); // <-- added to Inserts HTML line breaks.
$status = mail($to, $subject, nl2br($message), $headers);
if ($status) {
echo '<p style="color: white">Your Message was sent!</p>';
} else {
echo '<p style="color: white">Something went wrong. Please try again.</p>';
}