PHP 表单验证:如果没有错误回显"working"



谢谢您,我正在尝试弄清楚为什么我的代码不运行 if($ error!= true){ 回声"工作";} 代码块。我希望以后用MySQL功能替换它,但是现在我需要知道如何在所有字段有效时使表单提交工作工作。

<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body> 
<?php
// define variables and set to empty values
$error = $fnameErr = $lnameErr = $doberror =  $SnameErr = $state_Err = $post_code_num_Err = $sex_Err= $emailErr = $pwd1 =  "";
$fname = $lname = $dob = $street_name = $state =$post_code_num = $sex = $email = $pwd1_Err =  "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["fname"])) {
     $fnameErr = "Name is required";
     $error = true;
   } else {
     $fname = test_input($_POST["fname"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$fname)) {
         $error = true;
       $fnameErr = "Only letters and white space allowed"; 
     }
   }
   if (empty($_POST["lname"])) {
     $lnameErr = "last name is required";
     $error = true;
   } else {
     $lname = test_input($_POST["lname"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$lname)) {
       $lnameErr = "Only letters and white space allowed";
$error = true;     
     }
   }
   if (empty($_POST["dob"])) {
     $doberror = "dob name is required";
     $error = true;
   } else {
     $dob = test_input($_POST["dob"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^(0?[1-9]|[12]d|3[01])/(0?[1-9]|1[012])/(19|20)dd$/",$dob)) {
       $doberror = "format must match dd/mm/yyyy";
$error = true;     
     }
   }
   if (empty($_POST["street_name"])) {
     $SnameErr = "street name is required";
     $error = true;
   } else {
     $street_name = test_input($_POST["street_name"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/d{1,3}.?d{0,3}s[a-zA-Z]{2,30}s[a-zA-Z]{2,15}/",$street_name)) {
       $SnameErr = "must be in format like 123 fake street or 12/2 fake street";
$error = true;     
     }
   }
   if (empty($_POST["state"])) {
     $state_Err = "state is required";
     $error = true;
   } else {
     $state = test_input($_POST["state"]);
     $error = true;
   }

   if (empty($_POST["post_code_num"])) {
     $post_code_num_Err = "Post code is required";
     $error = true;
   } else {
     $post_code_num = test_input($_POST["post_code_num"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^d{4,4}$/",$post_code_num)) {
       $post_code_num_Err = "4 digit postcode only";
$error = true;     
     }
   }


   if (empty($_POST["sex"])) {
     $sex_Err = "Gender is required";
     $error = true;
   } else {
     $sex = test_input($_POST["sex"]);
   }
   if (empty($_POST["email"])) {
     $emailErr = "Email is required";
     $error = true;
   } else {
     $email = test_input($_POST["email"]);
     // check if e-mail address is well-formed
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $emailErr = "Invalid email format";
$error = true;     
     }
   }
   if (empty($_POST["pwd1"])) {
     $pwd1 = "password is required";
     $error = true;
   } else {
     $pwd1 = test_input($_POST["pwd1"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^(?=.*d)(?=.*[a-z])(?=.*[A-Z])w{6,}$/",$pwd1)) {
       $pwd1_Err = "Must contain at least one number, one lowercase and one uppercase letter. must have a minimum of 6 characters";
$error = true;     
     }
   }
   if($error != true) {
       echo "working";
   }

}   

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>
<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo ($_SERVER["testphp.php"]);?>"> 
   First Name:<br>
          <input type="text" name="fname" value="<?php echo $fname;?>">
   <span class="error">* <?php echo $fnameErr;?></span>
          <br>
          Last Name:<br>
          <input type="text" name="lname" value="<?php echo $lname;?>">
   <span class="error">* <?php echo $lnameErr;?></span> 
          <br>
          Date of Birth:<br>
          <input type="text" name="dob" value="<?php echo $dob;?>">
   <span class="error">* <?php echo $doberror;?></span> 
          <br>
          <fieldset>
<br>
            <legend>Address:</legend>
            <br>
            Street Name:
             <input type="text" name="street_name" value="<?php echo $street_name;?>">
   <span class="error">* <?php echo $SnameErr;?></span> 
            <br>
            State:
            <select name="state" id="state" placeholder="Select a state"  
              <option value="">Please Select</option>
              <option value="QLD">QLD</option>
              <option value="NT">NT</option>
              <option value="WA">WA</option>
              <option value="SA">SA</option>
              <option value="NSW">NSW</option>
              <option value="ACT">ACT</option>
              <option value="TAS">TAS</option>
              <option value="VIC">VIC</option>
            </select>
            <span class="error">* <?php echo $state_Err;?></span>

            <br>
            Post Code:
            <input type="text" name="post_code_num" value="<?php echo $post_code_num;?>">
   <span class="error">* <?php echo $post_code_num_Err;?></span>        
          </fieldset>
          <br>
          Sex:
          <input type="radio" name="sex" value="male" checked>Male
          <input type="radio" name="sex" value="female">Female
          <span class="error">* <?php echo $sex_Err;?></span>
          <br>
          Email:
          <input type="text" name="email" value="<?php echo $email;?>">
   <span class="error">* <?php echo $emailErr;?></span>
          <br>
          password:
          <input type="password"  name="pwd1" value="<?php echo $pwd1;?>">
   <span class="error">* <?php echo $pwd1_Err;?></span> 
          <br>

          <input type="submit"></input>
        </form>
<?php
echo "<h2>Your Input:</h2>";
echo $fname;
echo "<br>";
echo $lname;
echo "<br>";
echo $house_num;
echo "<br>";
echo $street_name;
echo "<br>";
echo $state;
echo "<br>";
echo $post_code_num;
echo "<br>";
echo $dob;
echo "<br>";
echo $sex;
echo "<br>";
echo $email;
echo "<br>";
echo $pwd1;
echo "<br>";

?>
</body>
   if (empty($_POST["state"])) {
     $state_Err = "state is required";
     $error = true;
   } else {
     $state = test_input($_POST["state"]);
     $error = true;
   }

所以总是$error=true

最新更新