PHP验证示例


必填字段将以正确的方式检查字段是否填满。大多数情况下,我们将使用 * 符号表示必填字段。

什么是验证?

验证意味着检查用户提交的输入。PHP中有两种类型的验证。他们如下 -

  • 客户端验证 - 验证在客户端机器Web浏览器上执行。

  • 服务器端验证 - 在数据提交之后,数据已发送到服务器并在服务器机器中执行验证检查。

一些字段的验证规则

领域 验证规则
名称 应该需要字母和空格
电子邮件 应该要求 **@** 和 **。**
网站 应该需要一个有效的网址
无线电 必须至少选择一次
复选框 必须至少检查一次
下拉式菜单 必须至少选择一次

有效的网址

以下代码显示URL的验证

$website = input($_POST["site"]);

if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
   $websiteErr = "Invalid URL";
}

以上语法将验证给定的URL是否有效。它应该允许一些关键字为https,ftp,www,az,0-9,..等。

有效的电邮

以下代码显示电子邮件地址的验证

$email = input($_POST["email"]);

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
   $emailErr = "Invalid format and please re-enter valid email";
}

以上语法将验证给定的电子邮件地址是否格式正确。如果不是,它将显示错误消息。

下面的例子显示了需要字段验证的表单

<html>

   <head>
      <style>
         .error {color: #FF0000;}
      </style>
   </head>

   <body>
      <?php
         // define variables and set to empty values
         $nameErr = $emailErr = $genderErr = $websiteErr = "";
         $name = $email = $gender = $comment = $website = "";

         if ($_SERVER["REQUEST_METHOD"] == "POST") {
            if (empty($_POST["name"])) {
               $nameErr = "Name is required";
            }else {
               $name = test_input($_POST["name"]);
            }

            if (empty($_POST["email"])) {
               $emailErr = "Email is required";
            }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";
               }
            }

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

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

            if (empty($_POST["gender"])) {
               $genderErr = "Gender is required";
            }else {
               $gender = test_input($_POST["gender"]);
            }
         }

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

      <h2>Absolute classes registration</h2>

      <p><span class = "error">* required field.</span></p>

      <form method = "post" action = "<?php
         echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
         <table class="table table-bordered">
            <tr>
               <td>Name:</td>
               <td><input type = "text" name = "name">
                  <span class = "error">* <?php echo $nameErr;?></span>
               </td>
            </tr>

            <tr>
               <td>E-mail: </td>
               <td><input type = "text" name = "email">
                  <span class = "error">* <?php echo $emailErr;?></span>
               </td>
            </tr>

            <tr>
               <td>Time:</td>
               <td> <input type = "text" name = "website">
                  <span class = "error"><?php echo $websiteErr;?></span>
               </td>
            </tr>

            <tr>
               <td>Classes:</td>
               <td> <textarea name = "comment" rows = "5" cols = "40"></textarea></td>
            </tr>

            <tr>
               <td>Gender:</td>
               <td>
                  <input type = "radio" name = "gender" value = "female">Female
                  <input type = "radio" name = "gender" value = "male">Male
                  <span class = "error">* <?php echo $genderErr;?></span>
               </td>
            </tr>

            <td>
               <input type = "submit" name = "submit" value = "Submit">
            </td>

         </table>

      </form>

      <?php
         echo "<h2>Your given values are as:</h2>";
         echo $name;
         echo "<br>";

         echo $email;
         echo "<br>";

         echo $website;
         echo "<br>";

         echo $comment;
         echo "<br>";

         echo $gender;
      ?>

   </body>
</html>

它会产生以下结果 -

验证示例