Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

PHP $_POST là một biến siêu toàn cầu PHP được sử dụng để thu thập dữ liệu biểu mẫu sau khi gửi biểu mẫu HTML với method="post". $_POST cũng được sử dụng rộng rãi để chuyển các biến

Ví dụ bên dưới hiển thị biểu mẫu có trường nhập và nút gửi. Khi người dùng gửi dữ liệu bằng cách nhấp vào "Gửi", dữ liệu biểu mẫu sẽ được gửi đến tệp được chỉ định trong thuộc tính hành động của

Trong HTTP có hai cách để gửi tham số đến máy chủ. Sử dụng phương thức GET, các tham số nằm trong URL sau dấu ? . Sử dụng POST, các tham số được gửi trong phần thân của yêu cầu

Theo đó PHP có hai cách riêng biệt để truy cập các tham số này. Thông qua các biến $_GET và $_POST

Trong ví dụ này, chúng tôi có một đoạn mã HTML nhỏ giúp trình duyệt hiển thị một hộp nhập và một nút. Khi mở thẻ biểu mẫu, chúng tôi đã nói rõ ràng rằng chúng tôi muốn trình duyệt sử dụng phương thức GET để gửi tham số. Chúng tôi thực sự không phải đặt điều này một cách rõ ràng vì đây cũng là mặc định, nhưng theo cách này thì rõ ràng hơn

Sau biểu mẫu HTML, có một đoạn mã PHP lấy một chuỗi và sử dụng. toán tử nối, nối giá trị nếu mảng kết hợp $_GET cho khóa "person_name". Chúng tôi đã sử dụng khóa này vì đây là "tên" của trường nhập liệu mà chúng tôi quan tâm

ví dụ/php/get_params. php






Nếu chúng tôi truy cập trang chúng tôi thấy

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

Chữ "Xin chào" ở dưới cùng ở đó vì mã PHP của chúng tôi sẽ chạy bất kể điều gì. Vì vậy, ngay cả khi $_GET["person_name"] nó vẫn được hiển thị

Khi chúng tôi nhập tên của mình (trong trường hợp này là "Foo") và nhấp vào nút "Echo", chúng tôi sẽ thấy rằng trang hiện hiển thị "Xin chào Foo" và chúng tôi cũng có thể thấy các tham số đã được chuyển trong URL có thể

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

htmlspecialchars là gì

Htmlspecialchars là gì và tại sao chúng ta cần nó? . Ví dụ: người dùng có thể nhập "". Nếu chúng tôi in lại các ký tự khi chúng tôi nhận được chúng, chúng tôi sẽ in lại. Tuy nhiên, điều đó sẽ vô hình vì trông giống như một thẻ HTML không xác định

Nếu không có htmlspecialchars thì nó sẽ như thế này

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

Bạn có thể thấy tham số trong URL, nhưng không phải trên trang

Nếu chúng tôi nhấp vào "xem nguồn" cho trang này, chúng tôi sẽ thấy

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

Như bạn có thể thấy trong nguồn, chúng tôi thấy văn bản khi chúng tôi nhập nhưng văn bản đó không hiển thị trên trang web

Để đảm bảo trình duyệt có thể hiển thị mọi ký tự khi chúng tôi nhập chúng vào, chúng tôi cần gọi htmlspecialchars trên mọi giá trị chúng tôi nhận được từ người dùng

Với htmlspecialchars nó sẽ như thế này

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

hay còn gọi là. Những gì chúng tôi mong đợi

Bây giờ nếu chúng ta nhìn vào nguồn của trang đó, chúng ta sẽ thấy điều này

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

Chúng tôi đã nhận lại các chuỗi đặc biệt đại diện cho các ký tự nhỏ hơn và lớn hơn để trình duyệt của chúng tôi biết rằng nó phải hiển thị chúng thay vì diễn giải chúng dưới dạng HTML

Để xem phương thức POST hoạt động như thế nào, chúng tôi đã thay đổi mã nguồn của tệp PHP ở hai vị trí từ GET thành POST. Ở dạng HTML và trong tên biến

ví dụ/php/post_params. php






Nếu chúng tôi xem trang bằng trình duyệt của mình, nó sẽ trông giống hệt như những gì chúng tôi đã có khi GET there. Sự khác biệt có thể được nhìn thấy sau khi chúng tôi nhập tên và nhấp vào "Echo"

Trước khi trình duyệt gửi thông tin, nó sẽ mã hóa thông tin đó bằng cách sử dụng sơ đồ gọi là mã hóa URL. Trong sơ đồ này, các cặp tên/giá trị được nối với nhau bằng các dấu hiệu bằng nhau và các cặp khác nhau được phân tách bằng dấu và

name1=value1&name2=value2&name3=value3

Dấu cách được xóa và thay thế bằng ký tự + và mọi ký tự không phải chữ và số 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ó sẽ được gửi đến máy chủ

Phương thức NHẬN

Phương thức GET gửi thông tin người dùng đã mã hóa được thêm 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 ?

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 Vị trí của trình duyệt. hộp

  • Phương thức GET bị giới hạn 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ủ

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

  • Có thể truy cập dữ liệu được gửi bằng phương thức GET bằng cách sử dụng biến môi trường QUERY_STRING

  • PHP cung cấp mảng kết hợp $_GET để truy cập tất cả thông tin đã gửi bằng phương thức GET

Hãy thử ví dụ sau bằng cách đưa mã nguồn vào kiểm tra. tập lệnh php

";
      echo "You are ". $_GET['age']. " years old.";
      
      exit();
   }
?>

   
   
      
         Name: 
         Age: 
         
      
      
   

Nó sẽ tạo ra kết quả sau -

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

Phương thức ĐĂNG

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

  • PHP cung cấp mảng kết hợp $_POST để truy cập tất cả thông tin đã gửi bằng phương thức POST

Hãy thử ví dụ sau bằng cách đưa mã nguồn vào kiểm tra. tập lệnh php

";
      echo "You are ". $_POST['age']. " years old.";
      
      exit();
   }
?>

   
   
      
         Name: 
         Age: 
         
      
   
   

Nó sẽ tạo ra kết quả sau -

Làm cách nào để lấy tham số từ yêu cầu POST trong PHP?

Biến $_REQUEST

Biến PHP $_REQUEST chứa nội dung của cả $_GET, $_POST và $_COOKIE. Chúng ta sẽ thảo luận về biến $_COOKIE khi chúng ta 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

Làm cách nào để NHẬN các tham số yêu cầu POST trong PHP?

PHP POST yêu cầu . $message"; $name = $_POST['name']; if ($name == null) { $name = 'guest'; } $message = $_POST['message']; if ($message == null) { $message = 'hello there'; } echo "$name says: $message"; Ví dụ lấy thông số tên và thông báo từ biến $_POST. Chúng tôi bắt đầu máy chủ.

Làm cách nào để truy cập các biến POST trong PHP?

Để nhận một yêu cầu POST trong PHP, chúng ta cần phải sử dụng biến siêu toàn cầu $_POST . Vì là biến toàn cục nên bạn có thể sử dụng biến $_POST trong bất kỳ phạm vi nào. Biến siêu toàn cầu $_POST là một mảng kết hợp gồm các biến chứa dữ liệu yêu cầu POST được gửi tới tập lệnh.

Làm cách nào để kiểm tra dữ liệu POST trong PHP?

Kiểm tra các giá trị POST trong PHP .
Kiểm tra xem có BẤT KỲ dữ liệu POST nào không. //Ghi chú. Điều này giải quyết là đúng ngay cả khi tất cả các giá trị $_POST là các chuỗi trống nếu (. trống($_POST)) { // xử lý dữ liệu bài viết $fromPerson = '+from%3A'. .
Chỉ kiểm tra xem Khóa THAM GIA có sẵn trong dữ liệu bài đăng không

$_ GET và $_ POST trong PHP là gì?

$_GET là một mảng các biến được truyền tới tập lệnh hiện tại thông qua các tham số URL. $_POST là một mảng các biến được truyền tới tập lệnh hiện tại thông qua phương thức HTTP POST .