Thứ Sáu, 22 tháng 2, 2019

Học lập trình PHP - Phương thức GET & POST

Có hai cách trình duyệt của khách hàng có thể gửi thông tin đến máy chủ web.

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ằng cách sử dụng lược đồ gọi là mã hóa URL. Trong sơ đồ này, các cặp tên / giá trị được nối với các dấu bằng nhau và các cặp khác nhau được phân tách bằng dấu và Học lập trình PHP

Học lập trình PHP chuyên nghiệp
Học lập trình PHP chuyên nghiệp

name1=value1&name2=value2&name3=value3

Các không gian được loại bỏ và thay thế bằng ký tự + và bất kỳ ký tự không phải chữ nào khác được thay thế bằng giá trị thập lục phân. Sau khi thông tin được mã hóa, nó được gửi đến máy chủ.

Phương thức GET


Phương thức GET gửi thông tin người dùng được mã hóa được nối vào yêu cầu trang. Trang và thông tin được mã hóa được phân tách bằng dấu ? tính cách.

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 trong nhật ký máy chủ của bạn, trong hộp Location: của trình duyệt.

Phương thức GET bị hạn chế chỉ gửi tối đa 1024 ký tự.

Không bao giờ sử dụng phương thức GET nếu bạn có mật khẩu hoặc thông tin nhạy cảm khác được gửi đến máy chủ.

GET không thể được sử dụng để gửi dữ liệu nhị phân, như hình ảnh hoặc tài liệu từ, đến máy chủ.

Dữ liệu được gửi bằng phương thức GET có thể được truy cập bằng biến môi trường QUERY_STRING.

Học lập trình PHP  cung cấp mảng kết hợp $ _GET để truy cập tất cả các thông tin được gửi bằng phương thức GET.

Hãy thử ví dụ sau bằng cách đặt mã nguồn vào tập lệnh test.php.
<?php
   if( $_GET["name"] || $_GET["age"] ) {
      echo "Welcome ". $_GET['name']. "<br />";
      echo "You are ". $_GET['age']. " years old.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "GET">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>

Phương thức POST

Phương thức POST chuyển thông tin qua các tiêu đề HTTP. Thông tin được mã hóa như được mô tả trong trường hợp phương thức GET và đưa vào một tiêu đề có tên 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 được gửi.

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

Dữ liệu được gửi bởi phương thức POST đi qua tiêu đề HTTP để bảo mật phụ thuộc vào giao thức HTTP. Bằng cách sử dụng HTTP bảo mật, bạn có thể đảm bảo rằng thông tin của mình được bảo mật.

Học lập trình PHP cung cấp mảng kết hợp $ _POST để truy cập tất cả các thông tin được gửi bằng phương thức POST.

Hãy thử ví dụ sau bằng cách đặt mã nguồn vào tập lệnh test.php.
<?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']. "<br />";
      echo "You are ". $_POST['age']. " years old.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
   
   </body>
</html>

Biến $ _REQUEST

Biến Học lập trình PHP $ _REQUEST chứa nội dung của cả $ _GET, $ _POST và $ _COOKIE. Chúng tôi sẽ thảo luận về biến $ _COOKIE khi chúng tôi sẽ giải thích về cookie.

Biến PHP $ _REQUEST có thể được sử dụng để lấy kết quả từ dữ liệu biểu mẫu được gửi bằng cả hai phương thức GET và POST.

Hãy thử ví dụ sau bằng cách đặt mã nguồn vào tập lệnh test.php.
<?php
   if( $_REQUEST["name"] || $_REQUEST["age"] ) {
      echo "Welcome ". $_REQUEST['name']. "<br />";
      echo "You are ". $_REQUEST['age']. " years old.";
      exit();
   }
?>
<html>
   <body>
      
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>
Ở đây biến $ _PHP_SELF chứa tên của tập lệnh tự mà nó đang được gọi.

Không có nhận xét nào:

Đăng nhận xét

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...