Bài 29: Validate Form bằng PHP

Ngày đăng: 2024-04-13 21:26:36

​​​​​​ Mục lục:

         1. Sưu tầm hàm Validate trong MySQL

         2. Validate bằng form PHP

​​​​​​         

1. Sưu tầm các hàm validate trong PHP

Trước khi vào bài thì mình muốn các bạn hãy sưu tầm các hàm kiểm tra dữ liệu vào một file nhé. Ở đây mình có sưu tầm một hàm, bạn có thể tham khảo và sử dụng cho dự án của mình. 

Bạn tạo file validate.php với nội dung như sau:

// Kiểm tra định dạng email

function is_email($str) {

    return (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;

}

 

Sau này bạn nên tự mình sưu tầm nhiều hàm hơn nữa nhé.

2. Validate form bằng PHP

Để validate form bằng PHP thì chúng ta phải thông qua hai công đoạn, công đoạn thứ nhất là lấy dữ liệu và kiểm tra dữ liệu, công đoạn thứ hai là hiển thị thông báo lỗi và hiển thị dữ liệu mà người dùng đã nhập để họ khỏi mất công nhập lại.

Mình sẽ làm một ví dụ là form liên hệ nhé các bạn. Bạn hãy tạo file contact.php và nhập nội dung HTML sau:

 

<!DOCTYPE html>

<html>

    <head>

        <title>titoe.net - Form liên hệ</title>

        <meta charset="UTF-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

    </head>

    <body>

        <?php

        // Code PHP xử lý validate

        if (!empty($_POST['contact_action']))

        {

             

        }

        ?>

        <h1>titoe.net - contact form</h1>

        <form method="post" action="contact.php">

            <table cellspacing="0" cellpadding="5">

                <tr>

                    <td>Tên của bạn</td>

                    <td><input type="text" name="fullname" id="fullname" value=""/></td>

                </tr>

                <tr>

                    <td>Email của bạn</td>

                    <td><input type="text" name="email" id="email" value=""/></td>

                </tr>

                <tr>

                    <td>Nội dung liên hệ</td>

                    <td><textarea id="content" name="content"></textarea></td>

                </tr>

                <tr>

                    <td></td>

                    <td><input type="submit" name="contact_action" value="Gửi liên hệ"/></td>

                </tr>

            </table>

        </form>

    </body>

</html>

 

Giao diện chạy lên sẽ như sau:

Bây giờ mình sẽ thực hiện hai công đoạn trên nhé.

Công đoạn 1: Kiểm tra dữ liệu

Thứ nhất mình sẽ code PHP validate trong đoạn code <?php ?>, thứ hai mình không lưu vào database mà sẽ comment vị trí sẽ code để lưu cho các bạn hiểu thôi nhé.

 

<?php

// Code PHP xử lý validate

$error = array();

$data = array();

if (!empty($_POST['contact_action']))

{

    // Lấy dữ liệu

    $data['fullname'] = isset($_POST['fullname']) ? $_POST['fullname'] : '';

    $data['email'] = isset($_POST['email']) ? $_POST['email'] : '';

    $data['content'] = isset($_POST['content']) ? $_POST['content'] : '';

 

    // Kiểm tra định dạng dữ liệu

    require('./validate.php');

    if (empty($data['fullname'])){

        $error['fullname'] = 'Bạn chưa nhập tên';

    }

 

    if (empty($data['email'])){

        $error['email'] = 'Bạn chưa email';

    }

    else if (!is_email($data['email'])){

        $error['email'] = 'Email không đúng định dạng';

    }

 

    if (empty($data['content'])){

        $error['content'] = 'Bạn chưa nhập nội dung';

    }

 

    // Lưu dữ liệu

    if (!$error){

        echo 'Dữ liệu có thể lưu trữ';

        // Code lưu dữ liệu tại đây

        // ...

    }

    else{

        echo 'Dữ liệu bị lỗi, không thể lưu trữ';

    }

}

?>

 

Công đoạn 2: Hiên thị lỗi và dữ liệu

Chúng ta có hai biến cục bộ đó là biến $data và $error, dựa vào hai biến này chúng ta show thông tin ra như sau:

 

<form method="post" action="contact.php">

    <table cellspacing="0" cellpadding="5">

        <tr>

            <td>Tên của bạn</td>

            <td>

                <input type="text" name="fullname" id="fullname" value="<?php echo isset($data['fullname']) ? $data['fullname'] : ''; ?>"/>

                <?php echo isset($error['fullname']) ? $error['fullname'] : ''; ?>

            </td>

        </tr>

        <tr>

            <td>Email của bạn</td>

            <td>

                <input type="text" name="email" id="email" value="<?php echo isset($data['email']) ? $data['email'] : ''; ?>"/>

                <?php echo isset($error['email']) ? $error['email'] : ''; ?>

            </td>

        </tr>

        <tr>

            <td>Nội dung liên hệ</td>

            <td>

                <textarea id="content" name="content"><?php echo isset($data['content']) ? $data['content'] : ''; ?></textarea>

                <?php echo isset($error['content']) ? $error['content'] : ''; ?>

            </td>

        </tr>

        <tr>

            <td></td>

            <td><input type="submit" name="contact_action" value="Gửi liên hệ"/></td>

        </tr>

    </table>

</form>

 

Và đây là toàn bộ nội dung của file contact.php.

 

<!DOCTYPE html>

<html>

    <head>

        <title>titoe.net - Form liên hệ</title>

        <meta charset="UTF-8">

        <meta name="viewport" content="width=device-width, initial-scale=1.0">

    </head>

    <body>

        <?php

        // Code PHP xử lý validate

        $error = array();

        $data = array();

        if (!empty($_POST['contact_action']))

        {

            // Lấy dữ liệu

            $data['fullname'] = isset($_POST['fullname']) ? $_POST['fullname'] : '';

            $data['email'] = isset($_POST['email']) ? $_POST['email'] : '';

            $data['content'] = isset($_POST['content']) ? $_POST['content'] : '';

 

            // Kiểm tra định dạng dữ liệu

            require('./validate.php');

            if (empty($data['fullname'])){

                $error['fullname'] = 'Bạn chưa nhập tên';

            }

 

            if (empty($data['email'])){

                $error['email'] = 'Bạn chưa email';

            }

            else if (!is_email($data['email'])){

                $error['email'] = 'Email không đúng định dạng';

            }

 

            if (empty($data['content'])){

                $error['content'] = 'Bạn chưa nhập nội dung';

            }

 

            // Lưu dữ liệu

            if (!$error){

                echo 'Dữ liệu có thể lưu trữ';

                // Code lưu dữ liệu tại đây

                // ...

            }

            else{

                echo 'Dữ liệu bị lỗi, không thể lưu trữ';

            }

        }

        ?>

        <h1>titoe.net - contact form</h1>

        <form method="post" action="contact.php">

            <table cellspacing="0" cellpadding="5">

                <tr>

                    <td>Tên của bạn</td>

                    <td>

                        <input type="text" name="fullname" id="fullname" value="<?php echo isset($data['fullname']) ? $data['fullname'] : ''; ?>"/>

                        <?php echo isset($error['fullname']) ? $error['fullname'] : ''; ?>

                    </td>

                </tr>

                <tr>

                    <td>Email của bạn</td>

                    <td>

                        <input type="text" name="email" id="email" value="<?php echo isset($data['email']) ? $data['email'] : ''; ?>"/>

                        <?php echo isset($error['email']) ? $error['email'] : ''; ?>

                    </td>

                </tr>

                <tr>

                    <td>Nội dung liên hệ</td>

                    <td>

                        <textarea id="content" name="content"><?php echo isset($data['content']) ? $data['content'] : ''; ?></textarea>

                        <?php echo isset($error['content']) ? $error['content'] : ''; ?>

                    </td>

                </tr>

                <tr>

                    <td></td>

                    <td><input type="submit" name="contact_action" value="Gửi liên hệ"/></td>

                </tr>

            </table>

        </form>

    </body>

</html>

 

Thật tuyệt vời =))

 

Về bài trước...

                                 Bài tiếp theo...

 

 


Tài liệu lập trình PHP

Bài viết trong cùng chuyên mục

Góc games giải trí



Cờ caro


Butterfly


Lật hình (luyện trí nhớ)

Cờ tướng ONLINE

Xếp hình

Ghép hình

15_PUZZLE

Kill ghosts

Banchim

Planet Defense

Tower game

Tower game

Plapy Bird (NH.Đông)

Vượt chướng ngại vật



0379136392

Thông tin liên hệ: Lê Văn Thuyên - ĐT: 0379136392 ; Gmail: lethuyen0379136392@gmail.com

Comment

 +   Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!

Trả lời

 *   Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!

Trả lời

 *   Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!

Trả lời

 +   -:

Trả lời

 +   -:

Trả lời

12564