php中的联系人表单验证

php中的联系人表单验证,php,Php,我试图验证此联系表。但它不起作用。每当我从live server发送电子邮件时,只发送消息,但不发送姓名、电话、电子邮件。请有人帮帮我。我从上一天开始就在做,但没有工作。那是因为你根本没有发送它们。看看你的代码: <?php $name_error = $email_error = $phone_error = $url_error = $last_name_error= ""; $firstName = $lastName = $email = $phone = $message =

我试图验证此联系表。但它不起作用。每当我从live server发送电子邮件时,只发送消息,但不发送姓名、电话、电子邮件。请有人帮帮我。我从上一天开始就在做,但没有工作。

那是因为你根本没有发送它们。看看你的代码:

<?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 = 'some@gmail.com';
        $subject = 'webmaster@example.com';
        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;
}

?>
您将变量$message作为message发送,这很好。。但是,让我们看看这个变量中的内容:

if (mail($to, $subject, $message)){
您正在将
$\u POST[“message”]
的值分配给它-没有其他值

if (empty($_POST["message"])) {
        $message = "";
    } else {
        $message = test_input($_POST["message"]);
    }
我认为您应该发送$message\u body而不是$message,那么它应该可以正常工作:)


希望能有所帮助。

好的,我正在尝试改变这一点。但如果我给出了错误的姓名、号码或电子邮件,它不会显示任何信息。请回答这个问题,为什么应该?你只有一个
如果
条件如果一切正常,你就发送电子邮件。。无
else
条件。你必须做一个
else
,然后简单地
echo
错误信息他不想发送
$message\u body
?@MasivuyeCokile我回答中的最后一句话:
我想你会发送$message\u body而不是$message,那么它应该可以正常工作:)
是的,他是这样的。
foreach ($_POST as $key => $value){
            $message_body .=  "$key: $value\n";
        }