2017-04-11 68 views
0
<?php 

$name_error = $email_error = $phone_error = $url_error = $last_name_error= ""; 
$firstName = $lastName = $email = $phone = $message = $url = $success = ""; 

if (isset($_POST["sendMessage"])) { 
    if (empty($_POST["firstName"])) { 
     $name_error = "Name is required"; 
    } else { 
     $firstName = test_input($_POST["firstName"]); 
     // check if name only contains letters and whitespace 
     if (!preg_match("/^[a-zA-Z ]*$/",$firstName)) { 
      $name_error = "Only letters and white space allowed"; 
     } 
    } 
    if (empty($_POST["lastName"])) { 
     $last_name_error = "Name is required"; 
    } else { 
     $lastName = test_input($_POST["lastName"]); 
     // check if name only contains letters and whitespace 
     if (!preg_match("/^[a-zA-Z ]*$/",$lastName)) { 
      $last_name_error = "Only letters and white space allowed"; 
     } 
    } 
    if (empty($_POST["email"])) { 
     $email_error = "Email is required"; 
    } else { 
     $email = test_input($_POST["email"]); 
     // check if e-mail address is well-formed 
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
      $email_error = "Invalid email format"; 
     } 
    } 

    if (empty($_POST["phone"])) { 
     $phone_error = "Phone is required"; 
    } else { 
     $phone = test_input($_POST["phone"]); 
     // check if e-mail address is well-formed 
     if (!preg_match("/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i",$phone)) { 
      $phone_error = "Invalid phone number"; 
     } 
    } 


    if (empty($_POST["message"])) { 
     $message = ""; 
    } else { 
     $message = test_input($_POST["message"]); 
    } 

    if ($name_error == '' and $last_name_error == '' and $email_error == '' and $phone_error == ''){ 
     $message_body = ''; 
     unset($_POST['sendMessage']); 
     foreach ($_POST as $key => $value){ 
      $message_body .= "$key: $value\n"; 
     } 

     $to = '[email protected]'; 
     $subject = '[email protected]'; 
     if (mail($to, $subject, $message)){ 
      $success = "Message sent, thank you for contacting us!"; 
      $firstName = $lastName = $email = $phone = $message = ''; 
     } 
    } 

} 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 

?> 

我試圖使這個聯繫表格驗證。但它不起作用。每當我發送電子郵件形式的現場服務器只有消息發送,但名稱,電話,電子郵件不發送。請有人幫助我。我從上一天開始工作,但沒有工作。聯繫表格驗證在php

回答

1

那是因爲你根本沒有發送它們。看看你的代碼:

if (mail($to, $subject, $message)){ 

Yoou're發送變量$消息作爲消息,多數民衆贊成罰款..但是,讓我們看看什麼這個變量中:

if (empty($_POST["message"])) { 
     $message = ""; 
    } else { 
     $message = test_input($_POST["message"]); 
    } 

你分配價值$_POST["message"]它 - 沒有別的。

foreach ($_POST as $key => $value){ 
      $message_body .= "$key: $value\n"; 
     } 

我想你會送$ MESSAGE_BODY代替$消息,那麼它應該工作的優良:)

希望它能幫助。

+0

好吧,我現在想改變這一點。但如果我給出錯誤的名稱,電話號碼或電子郵件,它不會顯示任何消息。請回答關於這個問題 – Farjana

+0

爲什麼它應該?如果一切正常,你只有一個「IF」條件,你發送電子郵件......沒有「其他」條件。你必須做一個'else',然後簡單地'echo'錯誤信息 – Twinfriends

+0

是不是他想要發送'$ message_body'? –