如何在表单返回段落(PHP)中制作“textarea”

时间:2010-06-27 19:59:08

标签: php html

初学者。

我有一个带有textarea的表单来返回评论。我从helpvid.net获得了一个PHP脚本来发送表单。因此,表单被发送到PHP文件。然后表单通过电子邮件将信息返回给我。

问题是评论是作为一个大的磨合段发送的。即使用户在字段中点击Return以创建新行,电子邮件中返回的文本也在一行上。如果用户点击两次返回以创建一个新段落,那么这些段落将作为一个长段返回。我希望返回的文本具有用户输入的换行符。

以下是返回注释的PHP文件的代码:

$name = $_POST['name'];
$company = $_POST['company'];
$address = $_POST['address'];
$city = $_POST['city'];

$state = $_POST['state'];
$zip = $_POST['zip'];
$email = $_POST['email'];
$optin = $_POST['optin'];
$comments = $_POST['comments'];



$body = <<<EOD
<br><br>
Please send samples to: <br /><br />
$name <br />
$company <br />
$address <br>
$city, $state $zip <br><br />
Email: $email <br><br />
Opt-In to occasional email list?: $optin <br><br />
Comments: $comments <br>
EOD;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body,
$headers);

有没有办法修改此代码,或者我的HTML文件返回分段符?

2 个答案:

答案 0 :(得分:8)

nl2br是你的朋友:

$comments = nl2br($_POST['comments']);

答案 1 :(得分:6)

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

这应该这样做。基本上它会将换行符转换为<br />标记。

请注意,如果您确实要发送纯文本电子邮件,这应该不是问题。您确定您的电子邮件客户端没有剥离换行符吗?我知道Outlook有时会这样做。值得一试的东西......

更新

是的,nl2br()适用于您的情况。但是,如果您删除了原始的<br>代码,只使用了\n或硬换行符,则无需使用此功能。 <br>代码是您电子邮件中唯一的HTML。它没有良好的形成。你最好删除它们和行$headers .= "Content-type: text/html\r\n";,这样你就可以发送一个普通/文本电子邮件。