2012-08-09 64 views
0

新行我有一個接觸的形式與此代碼PHP的聯繫表格佈局不允許在電子郵件

$message = "Telephone Number: $telephone"."\n"."Job Details: $message"."\n"."Number of Pages Required: $pages"."\n"."Clients Budget: $budget"; 

但我不能讓一個新的生產線在電子郵件像它應該。我不知道我可能需要什麼其他代碼。謝謝。

ATB雅蘭

<?php 
// Clean up the input values 
foreach($_POST as $key => $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) < 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) < 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) < 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 .= "<li>".$error."</li>"; 
} 
die("<span class='failure'>The following errors occured:<ul>". $errortext ."</ul> </span>"); 
} 

// Send the email 
$to = "[email protected]"; 
$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("<span class='success'>Success! Your message has been sent.</span>"); 

// A function that checks to see if 
// an email is valid 
function validEmail($email) 
{ 
$isValid = true; 
$atIndex = strrpos($email, "@"); 
if (is_bool($atIndex) && !$atIndex) 
{ 
    $isValid = false; 
} 
else 
{ 
    $domain = substr($email, $atIndex+1); 
    $local = substr($email, 0, $atIndex); 
    $localLen = strlen($local); 
    $domainLen = strlen($domain); 
    if ($localLen < 1 || $localLen > 64) 
    { 
    // local part length exceeded 
    $isValid = false; 
    } 
    else if ($domainLen < 1 || $domainLen > 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!#%&`_=\\/$\'*+?^{}|~.-])+$/', 
      str_replace("\\\\","",$local))) 
    { 
    // character not valid in local part unless 
    // local part is quoted 
    if (!preg_match('/^"(\\\\"|[^"])+"$/', 
     str_replace("\\\\","",$local))) 
    { 
     $isValid = false; 
    } 
    } 
    if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A"))) 
    { 
    // domain not found in DNS 
    $isValid = false; 
    } 
    } 
    return $isValid; 
    } 

    ?> 

和JS

$(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("<tr class='error'></tr>"); 
      $("<td></td>").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; 
     } 
     }); 
    }); 
+1

你任何機會發送的電子郵件中的HTML? – andrewsi 2012-08-09 19:04:52

+0

將增加的charset = utf-8的幫助? – arranb22 2012-08-09 19:05:11

+0

的頁面是html的是 – arranb22 2012-08-09 19:05:37

回答

1
$headers = 'Content-Type: text/html; charset=utf-8'; 

您將它作爲HTML電子郵件發送,因此您的換行符被忽略。

您可以更改它們以便它們是HTML換行符(如Mathieu Imbert上面所述,將\n更改爲<br />)但由於您未在消息中使用HTML,因此可以從頭中刪除該行完全。

+0

它使它成爲電子郵件中的附件,請嘗試
arranb22 2012-08-09 19:50:25

0

對於一些電子郵件客戶端,如Outlook,你需要使用:

\r\n 

如果你發送你的電子郵件爲HTML,請使用:

<br /> 
+0

so $ telephone「。」\ r \ n「。」詳細信息:$ message「 – arranb22 2012-08-09 19:07:10

+0

@ arranb22是的,如果您的電子郵件僅爲文本 – Tchoupi 2012-08-09 19:08:07