Như chúng ta đã biết thì một trang web hoạt động theo mô hình client-server. Việc truyền gửi dữ liệu giữa client và server rất thường xuyên và quan trọng. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu cách sử dụng phương thức GET và POST để truyền dữ liệu từ client lên server.
Xem thêm: Mô hình client-server
Contents
Phương thức GET
Khi người dùng phía client sử dụng phương thức GET gửi dữ liệu lên server thông qua các tham số (parameter) trên URL. Các tham số trên URL bắt đầu bằng dấu ? và được ngăn cách với nhau bởi &.
Giá trị sẽ được lưu trong mảng $_GET. Mảng này chứa cặp key/value bao gồm tên thuộc tính của điều khiển trên form(key) và giá trị(value) là giá trị mà người dùng nhập vào. Để lấy giá trị trên các điều khiển chúng ta sẽ dùng mảng $_GET trong PHP.
Để hiểu rõ hơn chúng ta cùng nhau xét ví dụ dưới đây:
Ví dụ ở trên chúng ta có một HTML form sử dụng phương thức GET để gửi dữ liệu tới server. Khi người dùng nhấn nút submit form trên đường dẫn URL sẽ chứa cặp key/value với key chính là tên thuộc tính của điều khiển (ở đây là first_name và last_name) và giá trị khi người dùng nhập vào điều khiển.
Để lấy giá trị của điều khiển, bạn sử dụng $_GET sau đó là [ ] (dấu ngoặc vuông), và cuối cùng là tên của điều khiển bạn muốn lấy giá trị đặt trong dấu nháy đơn hoặc nháy kép. Ở ví dụ trên để lấy giá trị của textbox có tên là last_name và lưu vào biến $last_name chúng ta làm như sau:
$last_name = $_GET[‘last_name’];
Chú ý: Nếu giá trị của điều khiển bạn muốn lấy không tồn tại trong mảng $_GET, đoạn mã trên sẽ trả về NULL.
Tóm lại:
- Khi bạn sử dụng phương thức GET đối với form, tham số sẽ xuất hiện trên URL khi người dùng submit form. Sau đó, những tham số này được lưu trong mảng $_GET dưới dạng key/value.
- $_GET được gọi là biến superglobal và sẽ có phạm vi toàn cục trong mã PHP của bạn.
Phương thức POST
Ngoài việc gửi dữ liệu lên server thông qua phương thức $_GET chúng ta còn có một cách khác đó là dùng phương thức $_POST. Khác với GET thì phương thức POST không gửi dữ liệu bằng cách truyền tham số thông qua URL nên chúng ta sẽ không thấy được dữ liệu đang gửi.
Ở ví dụ trên thay vì dùng method GET chúng ta sẽ dùng method POST để gửi dữ liệu. Để lấy giá trị của điều khiển chúng ta cũng làm tương tự như phương thức GET đó là sử dụng $_POST sau đó là [ ] (dấu ngoặc vuông), và cuối cùng là tên của điều khiển muốn lấy giá trị đặt trong dấu nháy đơn hoặc nháy kép. Để lấy giá trị của điều khiển có tên là first_name thì chúng ta làm như sau:
$first_name = S_POST[‘first_name’];
Khi nào dùng phương thức GET
- Khi yêu cầu dành cho trang web mà đọc dữ liệu từ phía server.
- Khi yêu cầu có thể thực hiện nhiều lần mà không gây ra vấn đề gì.
Chú ý: GET không nên sử dụng để gửi mật khẩu cũng như những dữ liệu quan trọng.
Khi nào dùng phương thức POST
- Khi yêu cầu dành cho trang web mà ghi dữ liệu lên server.
- Khi yêu cầu thực hiện nhiều lần có thể gây ra vẫn đề.
- Khi bạn không muốn dữ liệu được gửi hiển thị trên URL vì lý do bảo mật.
- Khi bạn muốn truyền gửi dữ liệu lớn hơn 4KB.
Kết luận:
Qua bài viết này mình nghĩ rằng các bạn đã hiểu hơn về cách sử dụng phương thức GET và POST để truyền gửi dữ liệu trên trang web. Bên cạnh đó bạn cũng sẽ biết được khi nào chúng ta nên dùng phương thức GET hoặc POST. Chúc các bạn thành công!
Xem thêm: Dịch vụ thiết kế website