Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 空字段的表单验证程序_Html_Forms_Validation_Field - Fatal编程技术网

Html 空字段的表单验证程序

Html 空字段的表单验证程序,html,forms,validation,field,Html,Forms,Validation,Field,我在一个空字段中遇到表单验证问题。我已经包含了php中出现错误时的代码,我真的认为这可以解决问题,但不管怎样,它仍然提交表单,并重定向到感谢页面 表格载于: 以下是php: <?php $firstnameErr = $lastnameErr = $positionErr = $companynameErr = $address1Err = $postcodeErr = $countryErr = $emailErr = $numberErr = $elecErr = $howManyE

我在一个空字段中遇到表单验证问题。我已经包含了php中出现错误时的代码,我真的认为这可以解决问题,但不管怎样,它仍然提交表单,并重定向到感谢页面

表格载于:

以下是php:

<?php
$firstnameErr = $lastnameErr = $positionErr = $companynameErr = $address1Err = $postcodeErr = $countryErr =  $emailErr = $numberErr = $elecErr = $howManyErr;
$favFruit = array();
$myemail = 'tina.harris@31media.co.uk';//<-----Put Your email address here.

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["firstname"])) {
        $firstnameErr = "Please provide your first name";
    }
    else {
        $firstname = $_POST["firstname"];
    }

    if (empty($_POST["lastname"])) {
        $lastnameErr = "Please provide your first name";
    }
    else {
        $lastname = $_POST["lastname"];
    }

    if (empty($_POST["position"])) {
        $positionErr = "Please state your job position";
    }
    else {
        $position = $_POST["position"];
    }
 if (empty($_POST["companyname"])) {
        $companynameErr = "Please state your company's name";
    }
    else {
        $companyname = $_POST["companyname"];
    }

    if (empty($_POST["address1"])) {
        $address1Err = "Please provide an address for your invoice";
    }
    else {
        $address1 = $_POST["address1"];
    }


 if (empty($_POST['address2'])) {
 }

        else {
        $address2 = $_POST['address2'];
    }

   if (empty($_POST["postcode"])) {
        $postcodeErr = "Please provide a postocde for your invoice";
    }
    else {
        $postcode1 = $_POST["postcode"];
    }


 if (empty($_POST["country"])) {
        $countryErr = "Please provide your country for your invoice";
    }
    else {
        $country = $_POST["country"];
    }


 if (empty($_POST["email"])) {
        $emailErr = "Please provide your email address";
    }
    else {
        $email = $_POST["email"];
    }


    if (empty($_POST["number"])) {
        $numberErr = "Please provide your phone number";
    }
    else {
        $number = $_POST["number"];
    }


    if (empty($_POST["elec"])) {
        $elecErr = "Please provide an electronic signature";
    }
    else {
        $elec = $_POST["elec"];
    }


}



if( empty($errors))
{
$to = $myemail;
$email_subject = "NSTC booking: $name";
$email_body = "You have received a new booking from NSTC. ".
" Here are the details:  \n Places1: $places1  \n Places2: $places2 \n Places3: $places3 \n Title: $title \n First name: $firstname \n Last name: $lastname \n Position: $position \n Company name: $companyname \n Address1: $address1 \n Address2: $address2  \n Email: $email \n Number: \n $number \n Elec: $elec  \n ";

if(isset($_POST['formDoor'])){
  if (is_array($_POST['formDoor'])) {
    foreach($_POST['formDoor'] as $value){
      $email_body .= $value;
    }
  } else {
    $value = $_POST['formDoor'];
    $email_body .= $value;

  }
}

$headers = "From: $myemail\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: register-thanks.html');
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Contact form handler</title>
</head>

<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>


</body>
</html>

您的问题如下(我的假设):

您没有在$errors变量中设置任何内容

我会这样做(我会给你一个例子,然后你必须把它应用到你的每一个if语句中。)

在脚本开头,定义一个空数组:

$errors = array();
然后(这就是您必须在所有“如果”语句中复制的内容:

if (empty($_POST["email"])) {
    $errors['mailError'] = "Please provide your email address";
}
else {
    $email = $_POST["email"];
}
在脚本的末尾:

if (count($errors) === 0) {
    //passed, no errors.
} else {
    //there are errors. handle them.
}

谢谢,虽然我试过了,在我点击提交后,页面上只显示了“数组”,但页面的其余部分是空的。我想我对最后一部分还不太清楚,这里有一个小提琴可以理解它:)非常感谢,它在Firefox和Chrome中运行得很好,但在Safari中没有,它只是让用户进入下一步。。你知道为什么吗?
if (count($errors) === 0) {
    //passed, no errors.
} else {
    //there are errors. handle them.
}