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$_GET và$_POST cũ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.