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


Trường bắt buộc sẽ kiểm tra xem trường đã được điền đúng cách hay chưa. 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 thông tin đầ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:

  • Xác thực phía máy khách – Việc xác thực được thực hiện trên các trình duyệt web của máy khách.

  • Xác thực phía máy chủ – Sau khi được gửi bằng dữ liệu, dữ liệu đã được gửi đến máy chủ và thực hiện kiểm tra xác thực trên máy chủ.

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

Đồng ruộngQuy tắc xác thực
TênPhải có chữ cái bắt buộc và khoảng trắng
E-mailNên yêu cầu @.
Trang mạngNên yêu cầu một URL hợp lệ
ĐàiPhải được chọn ít nhất một lần
Hộp kiểm traPhải kiểm tra được ít nhất một lần
Trình đơn thả xuốngPhả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 được cung cấp có đúng hay không. Nếu không, nó sẽ hiển thị thông báo lỗi.

Thí dụ

Ví dụ dưới đây 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:

Ví dụ xác thực