PHP Cơ bản
PHP Nâng cao
PHP & Cơ sở dữ liệu MySQL
Ví dụ PHP
Tài liệu tham khảo PHP
Quảng cáo

Xử lý biểu mẫu PHP

Trong hướng dẫn này bạn sẽ học cách để lấy dữ liệu được gửi qua một hình thức sử dụng các biến superglobal PHP $_GET, $_POST và $_REQUEST.

Tạo một biểu mẫu (Form) liên hệ đơn giản

Trong hướng dẫn này, chúng tôi sẽ tạo một biểu mẫu liên hệ HMTL đơn giản cho phép người dùng nhập nhận xét và phản hồi của họ sau đó hiển thị nó cho trình duyệt bằng PHP.

Mở trình soạn thảo mã yêu thích của bạn và tạo một tệp PHP mới. Bây giờ gõ mã sau và lưu tệp này dưới dạng "contact-form.php" trong thư mục gốc của dự án của bạn.

Ví dụ

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Contact Form</title>
</head>
<body>
    <h2>Contact Us</h2>
    <p>Please fill in this form and send us.</p>
    <form action="process-form.php" method="post">
        <p>
            <label for="inputName">Name:<sup>*</sup></label>
            <input type="text" name="name" id="inputName">
        </p>
        <p>
            <label for="inputEmail">Email:<sup>*</sup></label>
            <input type="text" name="email" id="inputEmail">
        </p>
        <p>
            <label for="inputSubject">Subject:</label>
            <input type="text" name="subject" id="inputSubject">
        </p>
        <p>
            <label for="inputComment">Message:<sup>*</sup></label>
            <textarea name="message" id="inputComment" rows="5" cols="30"></textarea>
        </p>
        <input type="submit" value="Submit">
        <input type="reset" value="Reset">
    </form>
</body>
</html>

Giải thích mã

Lưu ý rằng có hai thuộc tính trong thẻ mở <form> :

  • Thuộc tính action : file PHP "process-form.php" nhận dữ liệu nhập vào khi người dùng gửi nó bằng cách nhấn vào nút gửi.
  • Thuộc tính method  thông báo cho trình duyệt để gửi dữ liệu hình thức thông qua phương thức POST .

Phần còn lại của các phần tử bên trong biểu mẫu là các điều khiển biểu mẫu cơ bản để nhận dữ liệu nhập vào của người dùng. Để tìm hiểu thêm về các phần tử biểu mẫu HTML, vui lòng xem hướng dẫn về Biểu mẫu HTML .

Thu thập dữ liệu biểu mẫu bằng PHP

Để truy cập giá trị của một trường biểu mẫu cụ thể, bạn có thể sử dụng các biến superglobal sau đây. Các biến này có sẵn trong tất cả các phạm vi trong suốt một tập lệnh.

Superglobal Sự miêu tả
$_GET Chứa danh sách tất cả các tên trường và giá trị được gửi bởi một biểu mẫu sử dụng phương thức get (tức là thông qua các tham số URL).
$_POST Chứa danh sách tất cả các tên trường và giá trị được gửi bởi một biểu mẫu bằng phương thức post (dữ liệu sẽ không hiển thị trong URL).
$_REQUEST Chứa các giá trị của cả biến $_GETvà $_POSTcũng như các giá trị của biến superglobal $_COOKIE.

Khi người dùng gửi biểu mẫu liên hệ ở trên thông qua việc nhấp vào nút gửi, dữ liệu biểu mẫu được gửi đến tệp "process-form.php" trên máy chủ để xử lý. Nó chỉ đơn giản là nắm bắt thông tin do người dùng gửi và hiển thị nó cho trình duyệt.

Mã PHP của tệp "process-form.php" sẽ trông giống như sau:

Ví dụ

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Contact Form</title>
</head>
<body>
    <h1>Thank You</h1>
    <p>Here is the information you have submitted:</p>
    <ol>
        <li><em>Name:</em> <?php echo $_POST["name"]?></li>
        <li><em>Email:</em> <?php echo $_POST["email"]?></li>
        <li><em>Subject:</em> <?php echo $_POST["subject"]?></li>
        <li><em>Message:</em> <?php echo $_POST["message"]?></li>
    </ol>
</body>
</html>

Đoạn mã PHP trên khá đơn giản. Vì dữ liệu biểu mẫu được gửi qua phương thức post, bạn có thể truy xuất giá trị của một trường biểu mẫu cụ thể bằng cách chuyển tên của nó vào mảng superglobal $_POST và hiển thị từng giá trị trường bằng cách sử dụng câu lệnh echo().

Trong thực tế, bạn không thể tin tưởng vào dữ liệu nhập vào của người dùng; bạn phải triển khai một số loại xác thực để lọc dữ liệu đầu vào của người dùng trước khi sử dụng chúng. Trong chương tiếp theo, bạn sẽ tìm hiểu cách làm sạch và xác thực dữ liệu biểu mẫu liên hệ này và gửi nó qua email bằng PHP.

Bài viết này đã giúp ích cho bạn?

Advertisements