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.

  • 📝 Chức năng của các biểu mẫu: Biểu mẫu HTML thu thập thông tin do người dùng nhập thông qua các trường như hộp văn bản, hộp kiểm và nút bấm, sau đó gửi dữ liệu đó đến một tập lệnh trên máy chủ.
  • 📬 Phương thức POST: $_POST gửi các giá trị trong phần thân HTTP, giữ nguyênping đưa họ ra khỏi URLĐiều này phù hợp với việc đăng nhập và lưu trữ dữ liệu nhạy cảm.
  • 🔗 Phương thức NHẬN: $_GET thêm các giá trị vào URLNhờ đó, kết quả tìm kiếm có thể được đánh dấu, điều này rất lý tưởng cho các biểu mẫu tìm kiếm.
  • ⚖️ POST so với GET: Phương thức POST không có giới hạn độ dài thực tế và hỗ trợ nhiều loại dữ liệu; phương thức GET ngắn hơn, chỉ hỗ trợ chuỗi ký tự và có thể nhìn thấy được.
  • Xử lý đầu vào: Hàm isset() kiểm tra xem một trường đã được gửi đi hay chưa trước khi tập lệnh đọc và sử dụng giá trị của nó.
  • ☑️ Hộp kiểm: Hộp kiểm chỉ gửi giá trị khi được chọn, vì vậy hàm isset() xác nhận xem người dùng đã đồng ý hay chọn tùy chọn đó hay chưa.
  • 🤖 Hỗ trợ AI: Các công cụ AI có thể tạo ra một biểu mẫu được xác thực và bảo mật, đồng thời giúp chẩn đoán lý do tại sao biểu mẫu không được gửi đúng cách.

Xử lý biểu mẫu PHP

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 PHP

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.

Tạo biểu mẫu

ĐÂ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.

Phương thức GET và POST

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ị.

Công cụ tìm kiếm đơn giản

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.

Công cụ tìm kiếm đơn giản

Sơ đồ dưới đây cho thấy URL đối với các kết quả trên.

Công cụ tìm kiếm đơn giả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.

Làm việc với hộp kiểm, nút radio

Đ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.

Làm việc với hộp kiểm, nút radio

Nhấp vào liên kết "Quay lại biểu mẫu", sau đó chọn hộp kiểm.

Làm việc với hộp kiểm, nút radio

Bấm vào nút gửi.

Bạn sẽ nhận được kết quả sau.

Làm việc với hộp kiểm, nút radio

Câu Hỏi Thường Gặp

$_GET đọc các giá trị từ URL Chuỗi truy vấn, `$_POST` đọc các giá trị từ phần thân yêu cầu, và `$_REQUEST` kết hợp dữ liệu GET, POST và cookie. Nên sử dụng mảng cụ thể để biết chính xác giá trị đó đến từ đâu.

Không bao giờ tin tưởng vào dữ liệu đầu vào thô. Hãy xác thực bằng filter_var() hoặc các quy tắc cho từng trường, và mã hóa đầu ra bằng htmlspecialchars() để ngăn chặn XSS. Sử dụng các câu lệnh được chuẩn bị sẵn cho việc ghi dữ liệu vào cơ sở dữ liệu để ngăn chặn tấn công SQL injection.

Các nguyên nhân thường gặp là phương thức gửi yêu cầu là GET thay vì POST, thiếu thuộc tính name trên các trường nhập liệu, hoặc hành động không chính xác. URLhoặc thiếu kiểu mã hóa multipart cho việc tải lên tệp. Hãy kiểm tra từng mục này với biểu mẫu của bạn.

Đúng vậy. Trí tuệ nhân tạo (AI) có thể xây dựng biểu mẫu HTML cùng với xác thực phía máy chủ, bảo vệ chống tấn công CSRF và mã hóa dữ liệu. RevHãy xem xét kỹ các quy tắc cho từng trường và xác nhận các kiểm tra bảo mật phù hợp với ứng dụng của bạn trước khi triển khai.

Có. Hãy chia sẻ biểu mẫu và trình xử lý, và AI có thể phát hiện sự không khớp phương thức, thuộc tính tên bị thiếu, đường dẫn hành động không chính xác hoặc nhánh xác thực chặn việc gửi, sau đó đề xuất cách khắc phục.

Tóm tắt bài viết này với: