Tìm hiểu GET và POST trong PHP

Bộ mã nguồn web viết bằng PHP và được đưa lên host chính là Server, còn khi truy cập web thì người dùng chính là Client.Khi đăng nhập hay đăng kí tài khoản hay comment thì dữ liệu sẽ được Client gửi lên Server. Server nhận được thông báo qua 2 phương thức : GET và POST.

  1. Phương thức GET

Phương thức GET rất dễ nhận thấy đó là trên URL sẽ kèm theo dữ liệu mà chúng ta muốn gửi.

Phương thức GET là phương thức gửi dữ liệu thông qua đường dẫn URL nằm trên thanh địa chỉ của trình duyệt, Server sẽ nhận đường dẫn đó và xử lí,phân tích trả về kết quả cho người dùng, tất cả những thông tin sau dấu hỏi hỏi là phần dữ liệu mà Cient gửi lên.

Ví dụ với đường dẫn:

product?id=12
// Thì id=12 là dữ liệu mà client gửi lên cho

Để truyền nhiều dữ liệu lên Server, dùng & để phân cách giữa các cặp gía trị.

Gỉa sử muốn truyền lên server với product có id=5 và des="good" thì url có dạng như sau:

product?id=5&des=good

Dữ liệu mà GET gửi lên được lưu trong biến cục bộ $_GET do PHP tự tạo ra, như mảng lưu trữ dữ liệu theo định dạng: key=>value .

Trước khi lấy dữ liệu, kiểm tra xem dữ liệu đó có tồn tại hay không:

if(isset($_GET["id"]))

Với đường dẫn trên:

$_GET= array( "id" => "5",
               "des"=> "good");

Lấy id và des:

$id = $_GET["id"];
echo $id;
$des= $_GET["des"];
echo $des;

2.POST

Có tính bảo mật hơn GET vì dữ liệu gửi lên Server phải thông thông qua form HTML nên bị ẩn, người dùng không nhìn thấy bằng mắt thường được.

_Client gửi lên: Post dữ liệu qua form HTML và các giá trị sẽ được định nghiã trong các input bao gồm các kiểu textbox,password,textarea,hidden và được nhận dạngđó name của các input đó.

_Server nhận dữ liệu: Tương tự như Get, dữ liệu gửi lên server được lưu trữ trong một biến toàn cục $_POST do PHP tự tạo ra.Để lấy dữ liệu, chỉ cần lấy trong biến $_POST. Và lưu ý cũng phải kiểm tra sự tồn tại của dữ liệu.

if(isset($_POST["id"])){
  $id = $_POST["id"];
}
  1. So sánh GET và POST đều là 2 phương thức gửi dữ liệu từ client lên Server.

_POST bảo mật hơn vì dữ liệu được gửi ẩn. _GET nhanh hơn POST vì dữ liệu gửi đi được trình duyệt lưu laị trong cache.

  1. Kết luận Việc sử dụng GET hay POST còn tùy thuộc vào từng bài toán cụ thể mà ta lựa chọn.

Tham khảo: freetuts.netwww.w3schools.com

Cảm ơn mọi người đã đọc baì viết.