Mẫu đăng ký PHP sử dụng phương thức GET, POST kèm ví dụ
Hình thức là gì?
Khi bạn đăng nhập vào một trang web hoặc hộp thư, 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à thẻ HTML chứa các mục giao diện người dùng đồ họa như hộp nhập liệu, hộp kiểm, nút radio, v.v.
Biểu mẫu được xác định bằng cách sử dụng … thẻ và mục GUI được xác định bằng cách sử dụng các phần tử biểu mẫu như input.
Khi nào và tại sao chúng ta sử dụng biểu mẫu?
- Các biểu mẫu rất hữu ích khi phát triển các ứng dụng linh hoạt và năng động chấp nhận thông tin đầu vào của người dùng.
- Các biểu mẫu có thể được sử dụng để chỉnh sửa dữ liệu hiện có từ 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
- URL gửi 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, hộp kiểm, v.v.
Đoạn mã dưới đây tạo một 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 URL đích và loại gử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
- là nút mà khi 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 hành động của biểu mẫu chỉ định URL gửi xử lý dữ liệu. Thuộc tính phương thức chỉ định loại gửi.
Phương thức POST của PHP
- Đây là biến mảng siêu toàn cầu PHP tích hợp được sử dụng để nhận 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ị giá trị bài đăng của biểu mẫu trong URL.
- Một ví dụ điển hình về việc sử dụng phương thức đăng là khi gửi thông tin đăng nhập tới 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 biến URL.
Phương thức PHP GET
- Đây là biến mảng siêu toàn cầu PHP tích hợp được sử dụng để nhận 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ị biểu mẫu trong URL.
- Nó lý tưởng cho các biểu mẫu của công cụ tìm kiếm vì nó cho phép người dùng đánh dấu kết quả.
Cú pháp của nó như sau.
<?php $_GET['variable_name']; ?>
ĐÂY,
- “$_GET[…]” là mảng PHP
- “'variable_name'" là tên biến URL.
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 giới hạn độ dài của các giá trị vì chúng được gửi qua phần thân của 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 URL. Lưu ý giới hạn trên của ký tự phụ thuộc vào trình duyệt. |
Có hiệu suất thấp hơn so với phương thức Php_GET do tốn thời gian đóng gói các giá trị Php_POST trong phần thân HTTP | Có hiệu suất cao 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ợ các kiểu dữ liệu chuỗi vì các giá trị được hiển thị trong URL |
Kết quả không thể được đánh dấu sách | Kết quả có thể được đánh dấu sách do khả năng hiển thị của các giá trị trong URL |
Sơ đồ dưới đây cho thấy sự khác biệt giữa 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 một biểu mẫu đã được gửi, các giá trị sẽ được điền vào mảng siêu toàn cầu $_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ẽ sửa đổi biểu mẫu đăng ký để bao gồm mã PHP xử lý dữ liệu. Dưới đây là mã sửa đổi
<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="/vi/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_submit đã được điền vào mảng $_POST[] chưa và hiển thị thông báo cảm ơn và tên.
Nếu trường form_fobmit chưa được điền vào mảng $_POST[] thì 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 tôi 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 loại gửi biểu mẫu.
Để đơn giản, chúng ta sẽ sử dụng một Câu lệnh PHP If để 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="/vi/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 rồi nhấp vào nút gửi.
Sau đây sẽ được hiển thị
Sơ đồ bên dưới hiển thị URL cho các kết quả trên
Lưu ý URL đã hiển thị giá trị của search_term và form_submit. Hãy thử nhập bất cứ thứ gì khác với GET, sau đó nhấp vào nút gửi và xem kết quả bạn sẽ 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, 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.
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="/vi/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
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 và 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
Tổng kết
- Các biểu mẫu được sử dụng để lấy dữ liệu từ người dùng
- Biểu mẫu được tạo bằng thẻ HTML
- Các biểu mẫu có thể được gửi đến máy chủ để xử lý bằng phương thức POST hoặc GET
- Các giá trị biểu mẫu được gửi qua phương thức POST được gói gọn trong phần thân HTTP.
- Các giá trị biểu mẫu được gửi qua phương thức GET sẽ được thêm vào và hiển thị trong URL.