Validate Form trong PHP

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

Related Posts

Namespace trong PHP

Namespace cho phép các lớp / hàm / hằng cùng tên được sử dụng trong các ngữ cảnh khác nhau mà không có bất kỳ xung đột…

Hàm str_split() trong PHP

Bài viết này chúng ta sẽ đi tìm hiểu về hàm str_split(). Một trong những hàm thường được dùng trong PHP. Vậy cách sử dụng str_split() như…

Tạo chức năng sửa xoá thành viên bằng PHP & MySQL

Với một số trang web để quản lý thành viên (user) dễ dàng trong phần quản trị admin bạn phải khởi tạo chức năng sửa xoá thành…

Hàm str_replace trong PHP

Hàm str_replace trong PHP là gì? Hàm str_replace() trong PHP là một hàm được sử dụng để thay thế tất cả các xuất hiện của một chuỗi…

laravel8-vews-1

Views trong Laravel 8

Trong chuỗi series hướng dẫn học Laravel thì Views cũng quan trọng không kém gì so với Controller hay Model. Vậy chúng ta sẽ làm thế nào…

Pagination-PHP-MySQL-1

Tạo phân trang trong PHP và Mysql

Để hiểu hơn về ngôn ngữ PHP bạn sẽ phải thực hành nhiều bài tập với nó. Phân trang trong PHP là một phần kiến thức dành…