GET & POST - PHP

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

Tạo một Form liên hệ đơn giản

Chúng ta sẽ tạo một biểu mẫu liên hệ HMTL đơn giản cho phép người dùng gửi 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 code yêu thích của bạn và tạo một tập tin PHP mới. Bây giờ gõ mã sau và lưu tập tin 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ẻ <form> :

  • Thuộc tính action, file PHP "process-form.php" sẽ nhận dữ liệu được nhập vào khi người dùng gửi nó bằng cách nhấn vào nút Submit.
  • Thuộc tính method  sẽ thông báo cho trình duyệt để gửi dữ liệu bằng 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 form 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.

Nhận dữ liệu của biểu mẫu bằng PHP

Để truy cập giá trị của một trường 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 biến 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 biến 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 $_GET$_POST cũng như các giá trị của biến superglobal $_COOKIE.

Khi người dùng gửi form liên hệ ở trên thông qua việc nhấp vào nút Submit, dữ liệu biểu mẫu được gửi đến tập tin "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 đi và hiển thị nó cho trình duyệt.

Mã PHP của tập tin "process-form.php" sẽ trông giống như bên dưới:

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 của form đượ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 sử dụng tên biến của nó vào mảng superglobal $_POST và hiển thị từng giá trị 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 bài tiếp theo, bạn sẽ tìm hiểu cách làm sạch và xác thực dữ liệu trong biểu mẫu liên hệ này và gửi nó qua email bằng PHP.

 

Bài viết mới cập nhật