Mặc dù trình duyệt hỗ trợ JavaScript để xác thực người dùng cho website. Tuy nhiên nếu JavaScript bị lỗi hoặc tắt đi thì công việc này không thể thực hiện được. Vì vậy cần phải dùng tới mã PHP để Validate form.

Validation là gì?

Validation giúp kiểm tra thông tin đưa vào từ Form như input, textarea, number, nút radio, nút gửi và danh sách kiểm tra, vv… Với các quy tắc nhập do bạn đặt ra.

Dữ liệu đầu vào của người dùng chúng ta không thể nào biết được họ nhập những gì. Đôi khi cũng bị nhập sai chẳng hạn như mail thì không có dấu @, số điện thoại có cả chữ trong đó.

Để khắc phục vấn đề này cần tới Validate Form. PHP sẽ xác thực dữ liệu ở phía máy chủ, được gửi bằng biểu mẫu HTML.

Các kiểu Validate Form trong PHP thường gặp

Sau đây là những kiểu Validate xử lý Form thường được dùng cho các dự án của mình:

1. Validate chuỗi rỗng

Với kiểu này sẽ xác thực xem liệu người dùng có nhập thông tin vào input chưa. Nếu có rồi mới gửi đi, còn ngược lại gửi thông báo lỗi.

Hãy chạy ví dụ sau:

<!DOCTYPE html>
<html>
<head>

</head>
<body>
<?php

if(isset($_POST['Submit1'])) {

    $yourname = $_POST ["yourname"];

    if (empty($yourname)) 
    {  
        echo "Trường này là bắt buộc.";           
    }
    else 
    {
        echo $yourname; 
    }
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" >
    <input type="text" name="yourname"> 
    <input type="submit" name="Submit1" value="Submit">    
</form>
</body>
</html>

Khi không nhập gì cả mà ấn nút submit sẽ có một dòng chữ cảnh báo rằng bạn chưa đưa thông tin vào input.

2. Validate chuỗi

Kiểu này chỉ cho phép chứa bảng chữ cái và khoảng trắng.

Cũng với ví dụ trên giờ mình sẽ thay bằng

if (!preg_match ("/^[a-zA-z]*$/",$yourname)) 
    {  
        echo "Chỉ cho phép nhập chữ cái và khoảng trắng.";           
    }
    else 
    {
        echo $yourname; 
    }

Sau đó bạn nhập các ký tự đặc biệt vào input, ấn submit sẽ có lỗi xuất hiện.

3. Validate số điện thoại

Chạy đoạn code sau

$yournumber = $_POST ["yournumber"];

    if (!preg_match ("/^[0-9]*$/",$yournumber)) 
    {  
        echo "Vui lòng nhập số.";           
    }
    else 
    {
        echo $yournumber; 
    }

Rồi nhập toàn chữ cái vào thì sẽ xuất hiện cảnh báo bắt buộc phải nhập số.

4. Validate Email

Nó sẽ dùng để kiểm tra rằng định dạng Email có hợp lệ hay không. Trong chuỗi bắt buộc phải chứa @.

$youremail = $_POST ["youremail"];

    $pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$^";  

    if (!preg_match ($pattern, $youremail) )
    {  
        echo "Vui lòng địa chỉ Email.";           
    }
    else 
    {
        echo $youremail; 
    }

5. Validate độ dài đầu vào

Dùng hàm strlen để đếm ký tự nhập vào sau đó so sánh với số ký tự. Dùng if else để thông báo lỗi và ngược lại in ra kết quả.

$yourname = $_POST ["yourname"];

    $length  =  strlen($yourname); 

    if ($length < 6) 
    {  
        echo "Tên cần tối thiểu 6 ký tự.";           
    }
    else 
    {
        echo $yourname; 
    }

6. Validate URL

$webUrl = $_POST ["webUrl"];

    $patternUrl = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i";

    if (!preg_match($patternUrl, $webUrl)) 
    {  
        echo "Yêu cầu nhập chính xác đường dẫn.";           
    }
    else 
    {
        echo $webUrl; 
    }

7. Validate nút gửi

Để kiểm tra nút Submit có được Click hay không thì chúng ta dùng hàm isset(). Nó sẽ kiểm tra xem người dùng đã ấn nút hay chưa.

if(isset($_POST['Submit1'])) {

    echo "Nút gửi đã được Click.";  

    if ($_SERVER["REQUEST_METHOD"] == "POST") {  
        echo "Dữ liệu sử dụng phương thức Post ";  
    }  
    else {  
        echo "Dữ liệu không được gửi.";  
    }  
}

Kết luận: Với bài viết Validate Form trong PHP sau khi đọc xong bạn đã hiểu được cách sử dụng chưa. Hãy thực hành ngay sau khi đọc xong để kiểm tra lại những gì vừa học nhé.

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *