Note that there are some explanatory texts on larger screens.

plurals
  1. POPHP contact form layout not allowing new line in email
    text
    copied!<p>I have a contact form with this code</p> <pre><code>$message = "Telephone Number: $telephone"."\n"."Job Details: $message"."\n"."Number of Pages Required: $pages"."\n"."Clients Budget: $budget"; </code></pre> <p>But I can't make a new line in the email like it should. I don't know what other code I may need. Thank you.</p> <p>atb arran</p> <pre><code>&lt;?php // Clean up the input values foreach($_POST as $key =&gt; $value) { if(ini_get('magic_quotes_gpc')) $_POST[$key] = stripslashes($_POST[$key]); $_POST[$key] = htmlspecialchars(strip_tags($_POST[$key])); } mb_convert_encoding($string, "UTF-8"); //AUTO DETECT AND CONVERT mb_convert_encoding($string, "UTF-8", "latin1"); // Assign the input values to variables for easy reference $name = $_POST["name"]; $email = $_POST["email"]; $telephone = $_POST["telephone"]; $pages = $_POST["pages"]; $budget = $_POST["budget"]; $message = $_POST["message"]; // Test input values for errors $errors = array(); if(strlen($name) &lt; 2) { if(!$name) { $errors[] = "You must enter a name."; } else { $errors[] = "Name must be at least 2 characters."; } } if(!$email) { $errors[] = "You must enter an email."; } else if(!validEmail($email)) { $errors[] = "You must enter a valid email."; } if(strlen($telephone) &lt; 6) { if(!$telephone) { $errors[] = "You must enter a phone number."; } else { $errors[] = "Message must be at least 6 characters. (include area code)"; } } if(strlen($message) &lt; 10) { if(!$message) { $errors[] = "You must enter a message."; } else { $errors[] = "Message must be at least 10 characters."; } } if($errors) { // Output errors and die with a failure message $errortext = ""; foreach($errors as $error) { $errortext .= "&lt;li&gt;".$error."&lt;/li&gt;"; } die("&lt;span class='failure'&gt;The following errors occured:&lt;ul&gt;". $errortext ."&lt;/ul&gt; &lt;/span&gt;"); } // Send the email $to = "contact@dorsetdesigns.co.uk"; $subject = "Quote Request: $name"; $message = "Telephone Number: $telephone"."\n"."Job Details: $message"."\n"."Number of Pages Required: $pages"."\n"."Clients Budget: $budget"; $headers = 'Content-Type: text/html; charset=utf-8'; "Quote Request From: $email"; mail($to, $subject, $message, $headers); // Die with a success message die("&lt;span class='success'&gt;Success! Your message has been sent.&lt;/span&gt;"); // A function that checks to see if // an email is valid function validEmail($email) { $isValid = true; $atIndex = strrpos($email, "@"); if (is_bool($atIndex) &amp;&amp; !$atIndex) { $isValid = false; } else { $domain = substr($email, $atIndex+1); $local = substr($email, 0, $atIndex); $localLen = strlen($local); $domainLen = strlen($domain); if ($localLen &lt; 1 || $localLen &gt; 64) { // local part length exceeded $isValid = false; } else if ($domainLen &lt; 1 || $domainLen &gt; 255) { // domain part length exceeded $isValid = false; } else if ($local[0] == '.' || $local[$localLen-1] == '.') { // local part starts or ends with '.' $isValid = false; } else if (preg_match('/\\.\\./', $local)) { // local part has two consecutive dots $isValid = false; } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { // character not valid in domain part $isValid = false; } else if (preg_match('/\\.\\./', $domain)) { // domain part has two consecutive dots $isValid = false; } else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&amp;`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) { // character not valid in local part unless // local part is quoted if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local))) { $isValid = false; } } if ($isValid &amp;&amp; !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) { // domain not found in DNS $isValid = false; } } return $isValid; } ?&gt; </code></pre> <p>and the js</p> <pre><code> $(function() { // Validate the contact form $('#contactform').validate({ // Specify what the errors should look like // when they are dynamically added to the form errorElement: "label", wrapper: "td", errorPlacement: function(error, element) { error.insertBefore( element.parent().parent() ); error.wrap("&lt;tr class='error'&gt;&lt;/tr&gt;"); $("&lt;td&gt;&lt;/td&gt;").insertBefore(error); }, // Add requirements to each of the fields rules: { name: { required: true, minlength: 2 }, email: { required: true, email: true }, telephone: { required: true, minlength: 6 }, message: { required: true, minlength: 10 } }, // Specify what error messages to display // when the user does something horrid messages: { name: { required: "Please enter your name.", minlength: jQuery.format("At least {0} characters required.") }, email: { required: "Please enter your email.", email: "Please enter a valid email." }, telephone: { required: "Please enter a phone number.", minlength: jQuery.format("At least {0} characters required.") }, message: { required: "Please enter a message.", minlength: jQuery.format("At least {0} characters required.") } }, // Use Ajax to send everything to quote.php submitHandler: function(form) { $("#send").attr("value", "Sending..."); $(form).ajaxSubmit({ target: "#response", success: function(responseText, statusText, xhr, $form) { $(form).slideUp("fast"); $("#response").html(responseText).hide().slideDown("fast"); } }); return false; } }); }); </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload