PHP - Ví dụ về xác thực

Trường bắt buộc sẽ kiểm tra xem trường đã được điền hay chưa theo cách thích hợp. Hầu hết các trường hợp, chúng tôi sẽ sử dụng* ký hiệu cho trường bắt buộc.

Xác thực là gì?

Xác thực có nghĩa là kiểm tra đầu vào do người dùng gửi. Có hai loại xác thực có sẵn trong PHP. Chúng như sau:

  • Client-Side Validation - Xác thực được thực hiện trên trình duyệt web của máy khách.

  • Server Side Validation - Sau khi được gửi dữ liệu, dữ liệu đã được gửi đến máy chủ và thực hiện kiểm tra xác nhận trên máy chủ.

Một số quy tắc xác thực cho trường

Cánh đồng Quy tắc xác thực
Tên Phải có các chữ cái bắt buộc và khoảng trắng
E-mail Nên yêu cầu @.
Trang mạng Nên yêu cầu một URL hợp lệ
Đài Phải được chọn ít nhất một lần
Hộp kiểm tra Phải kiểm tra được ít nhất một lần
Trình đơn thả xuống Phải được chọn ít nhất một lần

URL hợp lệ

Đoạn mã dưới đây hiển thị xác thực URL

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

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

Cú pháp trên sẽ xác minh xem một URL nhất định có hợp lệ hay không. Nó phải cho phép một số từ khóa như https, ftp, www, az, 0-9, .. vv.

Email hợp lệ

Đoạn mã dưới đây hiển thị xác thực địa chỉ Email

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

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

Cú pháp trên sẽ xác minh xem địa chỉ Email đã cho có đúng hay không. Nếu không, nó sẽ hiển thị thông báo lỗi.

Thí dụ

Ví dụ bên dưới hiển thị biểu mẫu với xác thực trường bắt buộc

<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>
            <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>

Nó sẽ tạo ra kết quả sau: