Mẫu đăng ký PHP sử dụng phương thức GET, POST kèm ví dụ
⚡ Tóm tắt thông minh
Việc xử lý biểu mẫu trong PHP thu thập dữ liệu người dùng nhập từ các biểu mẫu HTML và xử lý chúng trên máy chủ thông qua các biến toàn cục $_POST và $_GET. Hướng dẫn này sẽ xây dựng một biểu mẫu đăng ký, giải thích các phương thức POST và GET, so sánh chúng và trình bày cách xử lý các trường, hộp kiểm và ô tìm kiếm.

Hình thức là gì?
Khi bạn đăng nhập vào một trang web hoặc hộp thư điện tử, bạn đang tương tác với một biểu mẫu.
Các biểu mẫu được sử dụng để nhận thông tin đầu vào từ người dùng và gửi nó đến máy chủ web để xử lý.
Sơ đồ dưới đây minh họa quá trình xử lý biểu mẫu.
Biểu mẫu là một thẻ HTML chứa các thành phần giao diện người dùng đồ họa như ô nhập liệu, hộp kiểm, nút chọn, v.v.
Biểu mẫu được định nghĩa bằng cách sử dụng … Các thẻ và các mục giao diện người dùng được định nghĩa bằng cách sử dụng các phần tử biểu mẫu như ô nhập liệu.
Khi nào và tại sao chúng ta sử dụng biểu mẫu?
- Biểu mẫu rất hữu ích khi phát triểnping Các ứng dụng linh hoạt và năng động, chấp nhận dữ liệu đầu vào từ người dùng.
- Biểu mẫu có thể được sử dụng để chỉnh sửa dữ liệu đã có sẵn trong cơ sở dữ liệu.
Tạo biểu mẫu
Chúng tôi sẽ sử dụng thẻ HTML để tạo biểu mẫu. Dưới đây là danh sách tối thiểu những thứ bạn cần để tạo một biểu mẫu.
- Thẻ biểu mẫu mở và đóng …
- Kiểu gửi biểu mẫu POST hoặc GET
- Thông tin URL sẽ xử lý dữ liệu đã gửi
- Các trường nhập liệu như hộp nhập liệu, vùng văn bản, nút bấm, hộp kiểm và các loại tương tự.
Đoạn mã dưới đây tạo ra một biểu mẫu đăng ký đơn giản.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
Xem đoạn mã trên trong trình duyệt web sẽ hiển thị biểu mẫu sau.
ĐÂY,
- … là các thẻ biểu mẫu mở và đóng
- action=”registration_form.php” method=”POST” chỉ định đích đến URL và loại hình nộp bài.
- Họ/Tên: là nhãn cho các hộp nhập liệu
- là các thẻ hộp đầu vào
- là thẻ dòng mới
- là một giá trị ẩn được sử dụng để kiểm tra xem biểu mẫu đã được gửi hay chưa
- Đây là nút mà khi được nhấp vào, sẽ gửi biểu mẫu đến máy chủ để xử lý.
Gửi dữ liệu biểu mẫu đến máy chủ
Thuộc tính action của biểu mẫu quy định việc gửi dữ liệu. URL Quá trình này xử lý dữ liệu. Thuộc tính `method` chỉ định loại gửi dữ liệu.
Phương thức POST của PHP
- Đây là biến mảng siêu toàn cục tích hợp sẵn của PHP được sử dụng để lấy các giá trị được gửi qua phương thức HTTP POST.
- Biến mảng có thể được truy cập từ bất kỳ tập lệnh nào trong chương trình; nó có phạm vi toàn cầu.
- Phương pháp này lý tưởng khi bạn không muốn hiển thị các giá trị được gửi từ biểu mẫu trong phần mô tả. URL.
- Một ví dụ điển hình về việc sử dụng phương thức POST là khi gửi thông tin đăng nhập đến máy chủ.
Cú pháp của nó như sau.
<?php
$_POST['variable_name'];
?>
ĐÂY,
- “$_POST[…]” là Mảng PHP
- “'variable_name'” là tên của trường trong biểu mẫu.
Phương thức PHP GET
- Đây là biến mảng siêu toàn cục tích hợp sẵn của PHP được sử dụng để lấy các giá trị được gửi qua phương thức HTTP GET.
- Biến mảng có thể được truy cập từ bất kỳ tập lệnh nào trong chương trình; nó có phạm vi toàn cầu.
- Phương pháp này hiển thị các giá trị của biểu mẫu trong URL.
- Nó rất lý tưởng cho các công cụ tìm kiếm vì cho phép người dùng đánh dấu các kết quả.
Cú pháp của nó như sau.
<?php
$_GET['variable_name'];
?>
ĐÂY,
- “$_GET[…]” là mảng PHP
- “'variable_name'” là URL tên biến.
Phương thức GET và POST
| POST | GET |
|---|---|
| Các giá trị không hiển thị trong URL | Các giá trị hiển thị trong URL |
| Không có giới hạn về độ dài của các giá trị vì chúng được gửi qua phần thân của yêu cầu HTTP. | Có giới hạn về độ dài của các giá trị, thường là 255 ký tự. Điều này là do các giá trị được hiển thị trong... URLLưu ý rằng giới hạn ký tự tối đa phụ thuộc vào trình duyệt. |
| Phương thức này có hiệu suất thấp hơn so với phương thức GET do mất thời gian để đóng gói các giá trị POST trong phần thân HTTP. | Phương thức này có hiệu suất cao hơn so với phương thức POST do tính chất đơn giản của việc thêm các giá trị vào. URL. |
| Hỗ trợ nhiều kiểu dữ liệu khác nhau như chuỗi, số, nhị phân, v.v. | Chỉ hỗ trợ kiểu dữ liệu chuỗi vì các giá trị được hiển thị trong... URL |
| Không thể đánh dấu kết quả. | Kết quả có thể được đánh dấu nhờ vào tính hiển thị rõ ràng của các giá trị. URL |
Sơ đồ bên dưới minh họa sự khác biệt giữa phương thức GET và POST.
Xử lý dữ liệu mẫu đăng ký
Biểu mẫu đăng ký gửi dữ liệu đến chính nó như được chỉ định trong thuộc tính hành động của biểu mẫu.
Khi biểu mẫu được gửi đi, các giá trị sẽ được điền vào mảng siêu toàn cục $_POST.
Chúng ta sẽ sử dụng hàm isset PHP để kiểm tra xem các giá trị biểu mẫu đã được điền vào mảng $_POST chưa và xử lý dữ liệu.
Chúng tôi sẽ chỉnh sửa mẫu đăng ký để bao gồm mã PHP xử lý dữ liệu. Dưới đây là đoạn mã đã được chỉnh sửa.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
ĐÂY,
- Kiểm tra xem trường ẩn `form_submitted` trong mảng `$_POST[]` đã được điền hay chưa và hiển thị lời cảm ơn cùng tên của bạn. Nếu trường `form_submitted` chưa được điền trong mảng `$_POST[]`, biểu mẫu sẽ được hiển thị.
Thêm ví dụ
Công cụ tìm kiếm đơn giản
Chúng ta sẽ thiết kế một công cụ tìm kiếm đơn giản sử dụng phương thức PHP GET làm kiểu gửi biểu mẫu.
Để đơn giản, chúng ta sẽ sử dụng một Câu lệnh if trong PHP để xác định đầu ra.
Chúng tôi sẽ sử dụng cùng một mã HTML cho biểu mẫu đăng ký ở trên và thực hiện các sửa đổi tối thiểu đối với biểu mẫu đó.
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Xem trang trên trong trình duyệt web.
Biểu mẫu sau sẽ được hiển thị.
Nhập GET bằng chữ in hoa, sau đó nhấn nút gửi.
Những nội dung sau đây sẽ được trình bày.
Sơ đồ dưới đây cho thấy URL đối với các kết quả trên.
Lưu ý URL Đã hiển thị giá trị của search_term và form_submitted. Hãy thử nhập bất kỳ thứ gì khác với GET, sau đó nhấp vào nút gửi và xem kết quả bạn nhận được.
Làm việc với hộp kiểm, nút radio
Nếu người dùng không chọn hộp kiểm hoặc nút radio, không có giá trị nào được gửi đi. Nếu người dùng chọn hộp kiểm hoặc nút radio, giá trị một (1) hoặc đúng sẽ được gửi đi.
Chúng tôi sẽ sửa đổi mã mẫu đăng ký và bao gồm nút kiểm tra cho phép người dùng đồng ý với các điều khoản dịch vụ.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Xem biểu mẫu trên trong trình duyệt.
Điền họ và tên vào chỗ trống.
Lưu ý hộp kiểm Đồng ý với Điều khoản dịch vụ chưa được chọn.
Bấm vào nút gửi.
Bạn sẽ nhận được kết quả sau.
Nhấp vào liên kết "Quay lại biểu mẫu", sau đó chọn hộp kiểm.
Bấm vào nút gửi.
Bạn sẽ nhận được kết quả sau.










