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

(Ngày: 12/12/2019)
GET và POST trong PHP là hai phương thức dùng để truyền tải dữ liệu từ client lên server. Cùng tìm hiểu về GET và POST trong PHP ngay sau đây.

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 là phần dữ liệu mà client gửi lên.

Ví dụ:

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 và để phân cách giữa các cặp giá trị.

Nếu muốn truyền lên server với product có id=5 và des=”goog” thì url có dạng 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;

POST

Có tính bảo mật hơn GET vì dữ liệu gửi lên Server phải thông qua form HTML nên bị ẩn.Client gửi lên: Post dữ liệu qua form HTML và các giá trị sẽ được định nghĩa trong các input bao gồm các kiểu textbox,

password, textarea, hidden và nhận được 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 bạn chỉ cần lấy trong biến $_POST. Và cũng 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"];

}

Tóm lại, 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 lại trong cache. Nên việc chọn sử dụng GET hay POST còn tùy thuộc vào từng bài toán cụ thể của bạn.

viblo.asia