2017-04-11 110 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'? –