Phương thức GET và POST trong PHP 2021 | Ironhack Việt Nam

Cả phương thức GET và POST trong PHP đều tạo ra một mảng chứa các cặp key/value. $_GET trong PHP được sử dụng để truyền một mảng vào tập lệnh với các tham số URL.

Còn $_POST trong PHP được sử dụng để truyền một mảng vào tập lệnh với phương thức HTTP POST. Cùng tôi tìm hiểu kỹ hơn về sự khác biệt giữa hai phương thức này nhé.

1. Phương thức GET

Phương thức GET gửi thông tin người dùng được mã hóa vào yêu cầu trang. Trang này và thông tin được mã hóa được ngăn cách bởi ký tự ?.

http://www.test.com/index.htm?name1=value1&name2=value2

  • Phương thức GET  tạo ra một chuỗi dài xuất hiện trên nhật ký máy chủ, trong phần Location của trình duyệt: box.
  • Phương thức GET có thể gửi được tối đa chỉ 1024 ký tự.
  • Không được sử dụng phương thức GET khi bạn gửi mật khẩu hoặc các thông tin nhạy khác đến máy chủ.
  • Phương thức GET không thể được sử dụng để gửi dữ liệu nhị phân đến máy chủ, ví dụ như hình ảnh hoặc tài liệu word.
  • Dữ liệu được gửi bằng phương thức GET có thể được truy cập bằng cách sử dụng biến môi trường QUERY_STRING.
  • PHP cung cấp mảng liên kết $_GET để truy cập tất cả thông tin đã được gửi bằng phương thức GET.

Hãy cùng xem qua ví dụ về cách đặt mã nguồn trong tập lệnh test.php .

if ( $ _GET [ “ name ” ] | | $ _GET [ “ age ” ] ) {

echo “Welcome “. $_GET[‘name’]. “
”;

echo “ You are “. $ _GET [ ‘ age ’ ]. ” years old. ” ;
exit ( ) ;
}
? >

” method = “GET”>

Name:

Age:

Và tác dụng đạt được sẽ như sau :
phương thức get và post trong php

Mẹo sử dụng PHP Get

Sử dụng phương pháp GET sẽ không làm ẩn đi thông tin được gửi từ biểu mẫu : tổng thể mọi thứ đều được hiển thị trong URL. Ngoài ra, phương pháp này còn có số lượng giới hạn về số lượng tài liệu hoàn toàn có thể được gửi .
Tuy nhiên, chính do thông tin được hiển thị trong URL nên bạn hoàn toàn có thể lưu lại những trang. Điều này trở nên khá hữu dụng trong 1 số ít trường hợp đặc biệt quan trọng .
Tóm lại, bạn chỉ nên sử dụng phương pháp này để giải quyết và xử lý những thông tin không nhạy .
Lưu ý quan trọng : bạn không khi nào được sử dụng phương pháp GET để gửi mật khẩu hay bất kỳ dữ liệu nhạy nào .

2. Phương thức Post

Phương thức POST giúp quy đổi thông tin qua HTTP headers. Thông tin được mã hóa tương tự như như khi sử dụng phương pháp GET và được đặt trong header có tên là QUERY_STRING .

  • Phương thức POST không giới hạn kích thước dữ liệu được gửi.
  • Phương thức POST có thể được sử dụng để gửi bảng mã ASCII cũng như dữ liệu nhị phân.
  • Dữ liệu được gửi bởi phước thức POST sẽ đi qua HTTP header, do đó, tính bảo mật phụ thuộc vào giao thức HTTP. Bằng cách sử dụng Secure HTTP (phần mở rộng cho Giao thức truyền siêu văn bản), bạn có thể an tâm bởi vì mọi thông tin của mình đều được bảo mật.
  • PHP cung cấp mảng kết hợp $_POST để truy cập tất cả thông tin được gửi bằng phương thức POST.

Ví dụ dưới đây chính là cách đặt mã nguồn trong tập lệnh test.php

if ( $ _POST [ “ name ” ] | | $ _POST [ “ age ” ] ) {

if (preg_match(“/[^A-Za-z’-]/”,$_POST[‘name’] )) {

die ( “ invalid name and name should be alpha ” ) ;
}

echo “Welcome “. $_POST[‘name’]. “
”;

echo “ You are “. $ _POST [ ‘ age ’ ]. ” years old. ” ;
exit ( ) ;
}
? >

” method = “POST”>

Name:

Age:

Và tác dụng đạt được như sau :
get và post trong php

Mẹo sử dụng PHP Post

Không giống như phương pháp GET, phương pháp POST ẩn đi tài liệu được gửi bằng cách nhúng chúng vào trong phần thân của HTTP request .
Nó không số lượng giới hạn cũng như tương hỗ khá nhiều tính năng nâng cao, ví dụ như tương hỗ cho nguồn vào nhị phân nhiều phần khi sử dụng FTP ( File Transfer Protocol – Giao thức truyền tải tập tin )
Do đó, không mấy kinh ngạc khi hầu hết những lập trình viên thích sử dụng phương pháp POST để giải quyết và xử lý tài liệu được tích lũy bằng những biểu mẫu PHP .
Nhược điểm duy nhất của phương pháp POST chính là không có tính năng lưu lại những trang cụ thể .

3. Phương thức GET và POST trong PHP khác nhau như thế nào?

Nhìn chung, cả $_POST và $_GET trong PHP đều được sử dụng để gửi dữ liệu lên server. Tuy nhiên, giữa chúng vẫn tồn tại một số khác biệt về khía cạnh mức độ bảo mật, giới hạn ký tự, hỗ trợ dữ liệu và thời gian thực thi.

Cụ thể như sau :
Xét về tính bảo mật thông tin :

  • Phương thức POST có tính bảo mật cao hơn,bởi nó không hiển thị dữ liệu trên thanh URL
  • Còn khi sử dụng phương thức GET, bạn có thể thấy được dữ liệu trên thanh URL. Điều này đồng nghĩa với việc tính bảo mật không cao và dữ liệu dễ bị rò rỉ ra bên ngoài.

Xét về số lượng giới hạn ký tự :

  • Đối với phương thức POST, không giới hạn kích thước dữ liệu
  • Tuy nhiên, phương thức GET lại có giới hạn độ dài ký tự (tối đa 1024 ký tự).

Xét về mức độ hỗ trợ kiểu dữ liệu:

  • Phương thức POST hỗ trợ khá nhiều kiểu dữ liệu, chẳng hạn như String (chuỗi), Numeric (số), Binary (nhị phân), …
  • Trong khi đó, phương thức GET chỉ hỗ trợ một kiểu dữ liệu duy nhất, chính là kiểu String.

Xét về vận tốc giải quyết và xử lý :

  • Phương thức POST xử lý dữ liệu mất nhiều thời gian hơn là phương thức GET
  • Và tất nhiên là phương thức GET mất ít thời gian thực thi hơn phương thức POST

Trên đây là những kiến thức quan trọng về $_POST và $_GET trong PHP. Hy vọng qua bài viết này bạn đã có thể nắm rõ được sự khác biệt và biết sử dụng GET và POST trong PHP đúng cách.

Nếu các bạn quan tâm đến PHP và đang tìm 1 khóa học PHP thì Ironhack Việt Nam là 1 trong những trung tâm đào tạo lập trình uy tín mà bạn có thể tin tưởng.