Xử lý biểu mẫu PHP
Các siêu lớp PHP $_GET
và $_POST
được sử dụng để thu thập dữ liệu biểu mẫu.
PHP - Một biểu mẫu HTML đơn giản
Ví dụ bên dưới hiển thị một biểu mẫu HTML đơn giản với hai trường nhập và nút gửi:
Ví dụ
<html>
<body>
<form action="welcome.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Chạy ví dụ »Khi người dùng điền vào biểu mẫu ở trên và nhấp vào nút gửi, dữ liệu biểu mẫu sẽ được gửi để xử lý thành tệp PHP có tên "welcome.php". Dữ liệu biểu mẫu được gửi bằng phương thức HTTP POST.
Để hiển thị dữ liệu đã gửi, bạn chỉ cần lặp lại tất cả các biến.
"welcome.php" trông như thế này:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Đầu ra có thể giống như thế này:
Welcome John
Your email address is [email protected]
Kết quả tương tự cũng có thể đạt được bằng cách sử dụng phương thức HTTP GET:
Ví dụ
Ví dụ tương tự, nhưng phương thức được đặt thành GET thay vì POST:
<html>
<body>
<form action="welcome_get.php" method="GET">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Chạy ví dụ »và "welcome_get.php" trông như thế này:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Đoạn mã trên khá đơn giản và không bao gồm bất kỳ xác nhận nào.
Bạn cần xác thực dữ liệu biểu mẫu để bảo vệ tập lệnh của mình khỏi mã độc.
Hãy suy nghĩ về AN NINH khi xử lý các biểu mẫu PHP!
Trang này không chứa bất kỳ xác thực biểu mẫu nào, nó chỉ hiển thị cách bạn có thể gửi và truy xuất dữ liệu biểu mẫu.
Tuy nhiên, các trang tiếp theo sẽ chỉ ra cách xử lý các biểu mẫu PHP có lưu ý đến vấn đề bảo mật! Việc xác thực đúng dữ liệu biểu mẫu là rất quan trọng để bảo vệ biểu mẫu của bạn khỏi tin tặc và kẻ gửi thư rác!
NHẬN so với BÀI ĐĂNG
Cả GET và POST đều tạo một mảng (ví dụ: mảng( key1 => value1, key2 => value2, key3 => value3, ...)). Mảng này chứa các cặp khóa/giá trị, trong đó khóa là tên của các điều khiển biểu mẫu và giá trị là dữ liệu đầu vào từ người dùng.
Cả GET và POST đều được coi là $_GET và $_POST. Đây là các siêu toàn cầu, có nghĩa là chúng luôn có thể truy cập được, bất kể phạm vi - và bạn có thể truy cập chúng từ bất kỳ chức năng, lớp hoặc tệp nào mà không cần phải thực hiện bất kỳ điều gì đặc biệt.
$_GET là một mảng các biến được truyền tới tập lệnh hiện tại thông qua các tham số URL.
$_POST là một mảng các biến được truyền tới tập lệnh hiện tại thông qua phương thức HTTP POST.
Khi nào nên sử dụng GET?
Thông tin được gửi từ một biểu mẫu bằng phương thức GET sẽ hiển thị với mọi người (tất cả tên và giá trị biến đều được hiển thị trong URL). GET cũng có giới hạn về lượng thông tin cần gửi. Giới hạn là khoảng 2000 ký tự. Tuy nhiên, do các biến được hiển thị trong URL nên có thể đánh dấu trang. Điều này có thể hữu ích trong một số trường hợp.
GET có thể được sử dụng để gửi dữ liệu không nhạy cảm.
Lưu ý: KHÔNG BAO GIỜ được sử dụng GET để gửi mật khẩu hoặc thông tin nhạy cảm khác!
Khi nào nên sử dụng POST?
Thông tin được gửi từ một biểu mẫu bằng phương thức POST sẽ không hiển thị với những người khác (tất cả tên/giá trị được nhúng trong nội dung của yêu cầu HTTP) và không có giới hạn về lượng thông tin cần gửi.
Hơn nữa, POST hỗ trợ chức năng nâng cao như hỗ trợ đầu vào nhị phân nhiều phần trong khi tải tệp lên máy chủ.
Tuy nhiên, do các biến không được hiển thị trong URL nên không thể đánh dấu trang.
Các nhà phát triển thích POST để gửi dữ liệu biểu mẫu.
Tiếp theo, hãy xem cách chúng tôi có thể xử lý các biểu mẫu PHP một cách an toàn!