2012-03-30 13 views
2

Ich muss ein Kontaktformular zu einer Website hinzufügen, die ich mache, und fand einen nützlichen Code, den jemand freundlicherweise für Leute wie mich geteilt hat, die keine PHP-Erfahrung haben.Zeilenumbrüche in einem PHP-Kontaktformular

Nachdem ich den Code in die Seite eingefügt und auf eine Staging-Site hochgeladen habe, habe ich ihn mit meiner Google Mail-Adresse getestet und es funktioniert einwandfrei. Das einzige Problem ist, dass der E-Mail-Text keine Zeilenumbrüche enthält.

Hier ist der Code:

<?php 
if ($_POST["email"]<>'') { 
$ToEmail = '[email protected]'; 
$EmailSubject = 'Site contact form'; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$MESSAGE_BODY = "Name: ".$_POST["name"].""; 
$MESSAGE_BODY .= "Email: ".$_POST["email"].""; 
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]).""; 
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?> 
Your message was sent 
<?php 
} else { 
?> 
<form action="contactus.php" method="post"> 
<table width="400" border="0" cellspacing="2" cellpadding="0"> 
<tr> 
<td width="29%" class="bodytext">Your name:</td> 
<td width="71%"><input name="name" type="text" id="name" size="32"></td> 
</tr> 
<tr> 
<td class="bodytext">Email address:</td> 
<td><input name="email" type="text" id="email" size="32"></td> 
</tr> 
<tr> 
<td class="bodytext">Comment:</td> 
<td><textarea name="comment" cols="45" rows="6" id="comment" class="bodytext"> </textarea></td> 
</tr> 
<tr> 
<td class="bodytext"> </td> 
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td> 
</tr> 
</table> 
</form> 
<?php 
}; 
?> 

Dies ist, was ich erhalten, wenn es in meinem Posteingang eintrifft:

Name: Herr J BloggsEmail: [email protected]: Kommentare Text.

Was Ich mag würde, ist es stattdessen so aussehen zu:

Name: Herr J Bloggs
Email: [email protected]
Kommentar: Kommentare Text.

Vielen Dank im Voraus für jede Hilfe.

Antwort

2

Gerade Zeilenumbruch nach jeder Zeile hinzufügen:

$MESSAGE_BODY = "Name: ".$_POST["name"]."<br/>"; 
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br/>"; 
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"]); 
2

Sie tun sollen

$MESSAGE_BODY = "Name: ".$_POST["name"]."\n"; 
$MESSAGE_BODY .= "Email: ".$_POST["email"]."\n"; 
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."\n"; 
+0

Vielen Dank für die Antwort, aber diese haben soeben einen Raum statt einer Pause gleiche ging \ r für das Hinzufügen \ n zu den Enden des Codes. Im Nachhinein sollten die Teile von "MESSAGE_BODY" mich dorthin geleitet haben, wo ich hinschauen musste. – number8pie

+0

@ number8pie Wenn die E-Mail HTML ist, sollten Sie '
' hinzufügen, Ihre Mail looke wie Klartext zu mir –

+0

Vielen Dank für das Aufräumen, wenn ich jemals E-Mails mit dem
Tag in ihnen bekomme ich stattdessen die \ n Methode verwenden . – number8pie

Verwandte Themen