Chúng tôi sử dụng phương thức POST để gửi dữ liệu từ biểu mẫu trang web động đến máy chủ. Khi người dùng điền vào biểu mẫu trang web và nhấp vào nút gửi, thì thông tin sẽ chỉ đến máy chủ với sự trợ giúp của phương thức POST
Trong hướng dẫn trước, chúng ta đã thảo luận về phương thức GET trong PHP. Có một sự khác biệt nhỏ giữa các phương thức GET và POST
Phương thức POST trong PHP là viết tắt của gửi thông tin đến máy chủ mà không có bất kỳ giới hạn nào
Phương thức POST chuyển thông tin qua tiêu đề HTTP. . Nếu bạn muốn tạo một trang web động, thì bạn nên có kiến thức đầy đủ về phương pháp đăng bài
Bạn có thể sử dụng phương thức đăng bài cho mục đích bảo mật. Phương thức Đăng không chứa bất kỳ giá trị được mã hóa nào trong URL trang. Trong phương thức GET, giá trị được mã hóa được phân tách bằng dấu ?
cú pháp
$_POST['varibale_name'];
Trong cú pháp trên, $ _GET[. ] là một mảng của PHP và nằm trong mảng. Sử dụng bất kỳ tên biến nào cho các giá trị biểu mẫu. Khi bạn tạo biểu mẫu đăng nhập, bạn xác định một số biến mang giá trị từ biểu mẫu HTML. Chúng tôi chuyển tên biến bên trong $_POST[. ]
Khi bạn tạo một biểu mẫu và bạn nhận được một số trường bên trong biểu mẫu. Bạn phải xác định tên của mọi lĩnh vực
Sau khi hoàn thành biểu mẫu HTML, bạn phải sử dụng chúng cho tên trường bên trong $_POST[. ] mảng. Các giá trị trường biểu mẫu được gửi đến máy chủ thông qua phương thức POST. Đó là một quá trình rất đơn giản
Ví dụ về phương thức POST
Trong ví dụ dưới đây, chúng tôi tạo một biểu mẫu HTML và tập lệnh PHP cho phương thức POST
Ví dụ
Chạy
User Name: Password:
"; echo 'UserName-'.$_POST['user']; echo"
"; echo 'Password-'.$_POST['pass']; } ?>
Trong ví dụ trên, chúng tôi đã tạo một biểu mẫu HTML. Có hai trường bên trong biểu mẫu HTML. Trường đầu tiên [hộp văn bản] dành cho tên người dùng và trường thứ hai [hộp văn bản] dành cho mật khẩu
1. Để xử lý dữ liệu của form, chúng ta sử dụng phương thức POST
2. Tạo tập lệnh PHP cho phương thức POST
3. Trong tập lệnh PHP, chúng tôi sử dụng "nếu điều kiện" để xử lý quy trình gửi
4. Bây giờ hãy sử dụng $_POST[. ] mảng kết hợp và sử dụng tên biến. Tên biến phải trùng với tên trường HTML
Trong bài viết này, chúng ta sẽ biết các phương thức HTTP GET và POST trong PHP là gì, cách triển khai các phương thức HTTP này và cách sử dụng chúng, bằng cách tìm hiểu chúng thông qua các ví dụ
HTTP. Giao thức truyền tải siêu văn bản [HTTP] được thiết kế để cho phép liên lạc giữa máy khách và máy chủ. HTTP hoạt động như một giao thức phản hồi yêu cầu giữa máy khách và máy chủ. Trình duyệt web có thể là ứng dụng khách và ứng dụng trên máy tính lưu trữ trang web có thể là máy chủ. Máy khách [trình duyệt] gửi yêu cầu HTTP đến máy chủ; . Phản hồi chứa thông tin trạng thái về yêu cầu và cũng có thể chứa nội dung được yêu cầu
Có 2 phương thức yêu cầu HTTP
- ĐƯỢC. Yêu cầu dữ liệu từ một tài nguyên cụ thể
- BƯU KIỆN. Gửi dữ liệu được xử lý đến một tài nguyên được chỉ định
Chúng ta sẽ hiểu chi tiết cả hai phương pháp này thông qua các ví dụ
NHẬN phương thức. Trong phương thức GET, dữ liệu được gửi dưới dạng các tham số URL thường là các chuỗi tên và cặp giá trị được phân tách bằng dấu và [&]. Nói chung, một URL có dữ liệu GET sẽ trông như thế này
Ví dụ. Xem xét ví dụ dưới đây
//www.example.com/action.php?name=Sam&weight=55
Ở đây, phần in đậm trong URL biểu thị các tham số GET và phần in nghiêng biểu thị giá trị của các tham số đó. Có thể nhúng nhiều tham số=giá trị vào URL bằng cách nối với dấu và [&]. Người ta chỉ có thể gửi dữ liệu văn bản đơn giản qua phương thức GET
Ví dụ. Ví dụ này minh họa phương thức HTTP GET trong PHP
HTML
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623____34
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=626
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=628
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=621
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=627
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=628
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6230____331
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629____333____331
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6237
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6238
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6239
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6240
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6241
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6242
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6244
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6245
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6247
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6248
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6239
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6250
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6241
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6242
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6244
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6245
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6257
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6248
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6259
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6241
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6242
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6264
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6248
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6267
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6237
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6231
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6267
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6233____331
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6267
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6230
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6231
đầu ra
phương thức NHẬN []
Thuận lợi
- Vì dữ liệu được gửi bởi phương thức GET được hiển thị trong URL, nên có thể đánh dấu trang bằng các giá trị chuỗi truy vấn cụ thể
- Các yêu cầu GET có thể được lưu vào bộ đệm và các yêu cầu GET sẽ được lưu lại trong lịch sử trình duyệt
- Yêu cầu GET có thể được đánh dấu
Nhược điểm
- Phương thức GET không phù hợp để truyền thông tin nhạy cảm như tên người dùng và mật khẩu, vì những thông tin này hiển thị đầy đủ trong chuỗi truy vấn URL cũng như có khả năng được lưu trữ trong bộ nhớ của trình duyệt máy khách dưới dạng trang đã truy cập
- Vì phương thức GET gán dữ liệu cho biến môi trường máy chủ nên độ dài của URL bị giới hạn. Vì vậy, có một giới hạn đối với tổng số dữ liệu được gửi
Phương thức POST. Trong phương thức POST, dữ liệu được gửi đến máy chủ dưới dạng gói trong giao tiếp riêng với tập lệnh xử lý. Dữ liệu được gửi qua phương thức POST sẽ không hiển thị trong URL.
Ví dụ. Xem xét ví dụ dưới đây
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=62
Chuỗi truy vấn [tên/trọng lượng] được gửi trong nội dung thông báo HTTP của yêu cầu POST
Ví dụ. Ví dụ này minh họa phương thức HTTP POST trong PHP. Ở đây, chúng tôi đã sử dụng hàm preg_match[] để tìm kiếm chuỗi cho một mẫu, trả về true nếu mẫu tồn tại, nếu không trả về false
HTML
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=623____34
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6258
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=626
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6258
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6281
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6284
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6285
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6286
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6259
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6289
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6284
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=627
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6253
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6255
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=620
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6286
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=627
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=628
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6230____331
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6233____406
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6237
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6200
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6201
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6240
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6241
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6242
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6244
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6245
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6247
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6248
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6201
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6212
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6241
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6242
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6244
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6245
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6257
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6248
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6221
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=629____341
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6242
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6243
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6264
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6248
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=625
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6267
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6237
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6231
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6267
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6233____331
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6267
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6230
POST /test/demo_form.php HTTP/1.1 Host: gfs.com SAM=451&MAT=6231
đầu ra
phương thức POST[]
Thuận lợi
- Nó an toàn hơn GET vì thông tin do người dùng nhập không bao giờ hiển thị trong chuỗi truy vấn URL hoặc trong nhật ký máy chủ
- Có giới hạn lớn hơn nhiều về lượng dữ liệu có thể được chuyển và người ta có thể gửi dữ liệu văn bản cũng như dữ liệu nhị phân [tải tệp lên] bằng POST
Nhược điểm
- Vì dữ liệu được gửi bằng phương thức POST không hiển thị trong URL nên không thể đánh dấu trang bằng một truy vấn cụ thể
- Yêu cầu POST không bao giờ được lưu trữ
- Yêu cầu POST không còn trong lịch sử trình duyệt
Vui lòng tham khảo bài viết Sự khác biệt giữa Phương thức HTTP GET và POST để biết chi tiết về sự khác biệt giữa chúng