Phương thức GET & POST trong PHP



Có 2 cách để Client có thể gửi thông tin cho Web Server:

  • Phương thức GET
  • Phương thức POST

Trước khi trình duyệt gửi thông tin, nó mã hóa nó bởi sử dụng một giản đồ gọi là URL encoding. Trong giản đồ này, các cặp name/value được kết hợp với kí hiệu = và các cặp khác nhau được phân tách nhau bởi dấu &.

name1=value1&name2=value2&name3=value3

Các khoảng trống được xóa bỏ, thay thế bằng kí tự + và bất kì kí tự không phải dạng số và chữ được thay thế bằng giá trị hexa. Sau khi thông tin được mã hóa, nó sẽ được gửi lên Server.

Phương thức GET trong PHP

Phương thức GET gửi thông tin người dùng đã được mã hóa được phụ thêm vào yêu cầu trang. Trang và thông tin mã hóa được phân tách nhau bởi kí tự hỏi chấm (?).

http://www.test.com/index.htm?name1=value1&name2=value2
  • Phương thức GET tạo ra một chuỗi kí tự dài xuất hiện trong Server log của bạn, trong Location: box của trình duyệt.

  • Phương thức GET được giới hạn gửi tối đa chỉ 1024 ký tự.

  • Không bao giờ sử dụng phương thức GET nếu gửi password hoặc thông tin nhay cảm lên Server.

  • GET không thể gửi dữ liệu nhị phân, ví dụ như hình ảnh hoặc tài liệu word lên Server.

  • Dữ liệu gửi bởi 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 hợp $_GET để truy cập tất cả các thông tin đã được gửi bởi phương thức GET.

Quảng cáo

Bạn thử ví dụ sau bằng việc đặt source code sau đây vào test.php script:

<?php
   if( $_GET["name"] || $_GET["age"] )
   {
      echo "Chào mừng ". $_GET['name']. "<br />";
      echo "Bạn ". $_GET['age']. " tuổi.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action="<?php $_PHP_SELF ?>" method="GET">
         Họ tên: <input type="text" name="name" />
         Tuổi: <input type="text" name="age" />
         <input type="submit" />
      </form>
      
   </body>
</html>

PHP code trên sẽ cho kết quả:

Phương thức POST trong PHP

Phương thức POST truyền thông tin thông qua HTTP header. Thông tin này được mã hóa như mô tả trong trường hợp của phương thức GET và đặt vào một header được gọi là QUERY_STRING.

  • Phương thức POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi.

  • Phương thức POST có thể sử dụng để gửi ASCII cũng như dữ liệu nhị phân.

  • Dữ liệu gửi bởi phương thức POST thông qua HTTP header, vì vậy việc bảo mật phụ thuộc vào giao thức HTTP. Bằng việc sử dụng Secure HTTP, bạn có thể chắc chắn rằng thông tin của mình là an toàn.

  • PHP cung cấp mảng liên hợp $_POST để truy cập tất cả các thông tin được gửi bằng phương thức POST.

Quảng cáo

Bạn thử ví dụ sau bằng việc đặt source code vào test.php script:

<?php
   if( $_POST["name"] || $_POST["age"] )
   {
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] ))
      {
         die ("Biến name không hợp lệ - nên là các chữ cái");
		}
      echo "Chào mừng ". $_POST['name']. "<br />";
      echo "Bạn ". $_POST['age']. " tuổi.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action="<?php $_PHP_SELF ?>" method="POST">
         Họ tên: <input type="text" name="name" />
         Tuổi: <input type="text" name="age" />
         <input type="submit" />
      </form>
   
   </body>
</html>

PHP code trên sẽ cho kết quả:

Biến $_REQUEST trong PHP

Biến $_REQUEST trong PHP chứa nội dung của cả $_GET, $_POST, và $_COOKIE. Chúng ta sẽ bàn về biến $_COOKIE khi giải thích về Cookie trong PHP.

Biến $_REQUEST trong PHP có thể được sử dụng để lấy kết quả từ form data được gửi bởi cả 2 phương thức GET và POST.

Bạn thử ví dụ sau bằng việc đặt source code vào test.php script:

<?php
   if( $_REQUEST["name"] || $_REQUEST["age"] )
   {
      echo "Chào mừng ". $_REQUEST['name']. "<br />";
      echo "Bạn ". $_REQUEST['age']. " tuổi.";
      exit();
   }
?>
<html>
   <body>
      
      <form action="<?php $_PHP_SELF ?>" method="POST">
         Họ tên: <input type="text" name="name" />
         Tuổi: <input type="text" name="age" />
         <input type="submit" />
      </form>
      
   </body>
</html>

Ở đây, biến $_PHP_SELF chứa tên của chính script đó, script mà nó đang được gọi.

PHP code trên sẽ cho kết quả:

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn ở Hà Nội có thể tham gia khóa học thứ 9 của vietjackteam (đang tuyển sinh) vào cuối tháng 10/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng. Khóa online= Đi phỏng vấn, Khóa offline= Đi phỏng vấn+ 1.5 tháng thực tập ngoài doanh nghiệp.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Từ tháng 4/2018, VietJack khuyến mại giá SỐC chỉ còn 250k cho khóa học, các bạn có thể trả lại tiền nếu không hài lòng về chất lượng trong 1 tháng, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại Khóa học Java Online trên Udemy

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học PHP phổ biến khác tại VietJack:




Tài liệu giáo viên