Как поместить абзацы в контактную форму PHP? - PullRequest
0 голосов
/ 03 апреля 2019

Я запрограммировал контактную форму в PHP и хочу включить абзацы в сообщение, которое будет отправлено, чтобы пользователю приходилось писать в определенных абзацах, а не только в одном блоке текста.

I 'мы пытались разделить message на несколько textareas, но я не знаю, как мне настроить PHP-код так, чтобы эти textareas отправлялись внутри одного message в правильном порядке.Каждый textarea должен был представить один абзац.

Это мой PHP:

<?php 
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: mywebsite.com'; 
    $to = 'myemailadress@adress.com'; 
    $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>

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

https://www.php.net/manual/en/function.nl2br.php

Когда вы используете nl2br, вы можете изменить "\ n" с текстовой области на "
". Вы можете отправить текстовое сообщение типа text / plain mail, и вам не нужно преобразовывать символы новой строки в теги
.

Я не вижу несколько текстовых областей в вашем коде, поэтому я думаю, nl2br - это функция, которую вы ищете.

0 голосов
/ 03 апреля 2019

Я добавил:

$message = nl2br($message); // Inserts HTML line breaks <br />

это должно вставить HTML разрывы строк.

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: mywebsite.com';
$to = 'myemailadress@adress.com';
$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>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...