PHP - Форма почты, преобразовывающая разрывы строк в пробелы - PullRequest
1 голос
/ 03 января 2012

У меня есть <textarea> в форме для комментариев пользователей, и когда содержимое передается в форму почты, разрывы строк преобразуются в пробелы.Как сохранить разрывы строк, которые вводит пользователь формы?

соответствующий php:

$comments = $_REQUEST['comments'];
// This grabs the comments from the submitted form

//...

$to = $configEmail;

$subject = "Website Order Received: $offer";

$contents = "blah blah blah...";
if (!empty ($comments)) {
    $contents = $contents."\nComments: $comments\n\n";
}

//...

mail($to, $subject, $contents);

И в конце HTML-формы ... (комментарии помещаются вформа, если она отправлена ​​с ошибками, поэтому данные не потеряны)

<label>Comments / Questions</label>
<textarea name="comments"><?php echo $comments; ?></textarea>

Если я наберу:

line 1
line 2
line 3

То же самое остается, если форма отправлена ​​с ошибками, поэтому1013 * определенно сохраняет разрывы строк.Но электронное письмо с открытым текстом дает мне:

line 1 line 2 line 3

Как сохранить разрывы строк?

Ответы [ 2 ]

2 голосов
/ 03 января 2012

Проблема в том, что разрывы строк, поступающие из текстовой области, \n не <br> .. Поэтому замените \n на <br> перед отправкой почты.

$body= str_replace("[enter]", "\n",$body);

Запомните двойные кавычки пользователя в "\ n" ...

1 голос
/ 03 января 2012

Попробуйте использовать функцию nl2br (), если она изначально не работает, попробуйте отправить сообщение в виде электронного письма в формате HTML.

...