_get(trang trong php)

Như chúng ta đã biết thì một trang web hoạt động theo mô hình client-server. Giao thức gửi dữ liệu giữa máy khách và máy chủ rất thường xuyên và quan trọng. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu cách sử dụng phương thức GET và POST để truyền dữ liệu từ client lên server

Xem thêm. Mô hình client-server

Phương thức GET

Khi người dùng phía client sử dụng phương thức GET gửi dữ liệu lên máy chủ thông qua các tham số [tham số] trên URL. Tham số trên URL bắt đầu bằng dấu ?

Giá trị sẽ được lưu trong mảng $_GET. Mảng này chứa cặp khóa/giá trị bao gồm tên thuộc tính của điều khiển trên biểu mẫu[key] và value[value] là giá trị mà người dùng nhập vào. Để lấy giá trị trên các điều khiển, chúng ta sẽ sử dụng mảng $_GET trong PHP

Để hiểu rõ hơn chúng ta cùng nhau xét ví dụ dưới đây

Ví dụ trên chúng ta có một biểu mẫu HTML sử dụng phương thức GET để gửi dữ liệu đến máy chủ. Khi người dùng nhấn nút gửi biểu mẫu trên đường dẫn URL sẽ chứa cặp khóa/giá trị với khóa chính là tên thuộc tính của bộ điều khiển [ở đây là first_name và last_name] và giá trị khi người dùng nhập vào bộ điều khiển

Để lấy giá trị của bộ điều khiển, bạn sử dụng $_GET sau đó là [ ] [dấu trích dẫn], và cuối cùng là tên của bộ điều khiển mà bạn muốn lấy giá trị đặt trong nháy đơn hoặc nháy kép. At ví dụ trên để lấy giá trị của hộp văn bản có tên là last_name và lưu vào biến $last_name mà chúng ta làm như sau

$last_name = $_GET[‘last_name’];

Chú thích. Nếu giá trị của bộ điều khiển bạn muốn truy xuất không tồn tại trong mảng $_GET, đoạn mã trên sẽ trả về NULL

Tóm tắt

  • Khi bạn sử dụng phương thức GET đối với biểu mẫu, tham số sẽ xuất hiện trên URL khi người dùng gửi biểu mẫu. Sau đó, các tham số này được lưu trong mảng $_GET dưới dạng khóa/giá trị
  • $_GET được gọi là biến superglobal và sẽ có phạm vi toàn cục trong mã PHP của bạn

Phương thức POST

Ngoài việc gửi dữ liệu lên máy chủ thông qua phương thức $_GET chúng ta còn có một cách khác đó là sử dụng phương thức $_POST. Khác với GET thì phương thức POST không gửi dữ liệu bằng cách truyền tham số qua URL nên chúng ta sẽ không thấy dữ liệu đang gửi

At ví dụ trên thay vì sử dụng phương thức GET chúng ta sẽ sử dụng phương thức POST để gửi dữ liệu. Để lấy giá trị của bộ điều khiển chúng ta cũng làm tương tự như phương thức GET đó là sử dụng $_POST sau đó là [ ] [dấu ngoặc kép], và cuối cùng là tên của bộ điều khiển muốn lấy giá trị đặt trong dấu nháy . To get value of the controller has name is first_name then we doing as after

$first_name = _POST[‘first_name’];

When used GET method

  • Khi yêu cầu dành cho trang web đọc dữ liệu từ phía máy chủ
  • Khi yêu cầu có thể thực hiện nhiều lần mà không gây ra vấn đề gì

Chú thích. GET không nên sử dụng để gửi mật khẩu cũng như những dữ liệu quan trọng

When used POST method

  • Khi yêu cầu dành cho trang web mà ghi dữ liệu lên máy chủ
  • Khi yêu cầu thực hiện nhiều lần có thể gây ra vấn đề
  • Khi bạn không muốn dữ liệu được gửi hiển thị trên URL vì lý do bảo mật
  • Khi bạn muốn truyền tải dữ liệu lớn hơn 4KB

Kết luận

Qua bài viết này mình nghĩ các bạn đã hiểu hơn về cách sử dụng phương thức GET và POST để truyền gửi dữ liệu trên trang web. Bên cạnh đó bạn cũng sẽ biết khi nào chúng ta nên sử dụng phương thức GET hoặc POST. Chúc các bạn thành công

file_get_contents[] là cách ưu tiên để đọc nội dung của tệp thành chuỗi. Nó sẽ sử dụng các kỹ thuật lập bản đồ bộ nhớ nếu được hệ điều hành của bạn hỗ trợ để nâng cao hiệu suất

Ghi chú

Nếu bạn đang mở một URI có ký tự đặc biệt, chẳng hạn như dấu cách, bạn cần mã hóa URI bằng urlencode[]

Thông số

filename

Tên file cần đọc

$filename0

Ghi chú

Hằng số $filename1 có thể được sử dụng để kích hoạt tìm kiếm đường dẫn bao gồm. Điều này là không thể nếu tính năng nhập nghiêm ngặt được bật, vì $filename1 là một kiểu int. Sử dụng $filename3 để thay thế

$filename4

Tài nguyên ngữ cảnh hợp lệ được tạo bằng stream_context_create[]. Nếu bạn không cần sử dụng ngữ cảnh tùy chỉnh, bạn có thể bỏ qua tham số này trước null

$filename6

Phần bù nơi bắt đầu đọc trên luồng ban đầu. Độ lệch âm được tính từ cuối luồng

Tìm kiếm [$filename6] không được hỗ trợ với các tệp từ xa. Cố gắng tìm kiếm trên các tệp không cục bộ có thể hoạt động với độ lệch nhỏ, nhưng điều này không thể đoán trước được vì nó hoạt động trên luồng được đệm

$filename8

Độ dài tối đa của dữ liệu đọc. Mặc định là đọc cho đến khi kết thúc tệp. Lưu ý rằng tham số này được áp dụng cho luồng do bộ lọc xử lý

Giá trị trả về

Hàm trả về dữ liệu đã đọc hoặc filename1 khi lỗi

Cảnh báo

Hàm này có thể trả về giá trị Boolean filename1, nhưng cũng có thể trả về giá trị không phải Boolean có giá trị là filename1. Vui lòng đọc phần về Booleans để biết thêm thông tin. Sử dụng toán tử === để kiểm tra giá trị trả về của hàm này

Lỗi/Ngoại lệ

Lỗi cấp độ filename42 được tạo nếu không thể tìm thấy filename, $filename8 nhỏ hơn 0 hoặc nếu tìm kiếm $filename6 được chỉ định trong luồng không thành công

Khi file_get_contents[] được gọi trên một thư mục, lỗi cấp độ filename42 được tạo trên Windows và kể từ PHP 7. 4 trên các hệ điều hành khác

Nhật ký thay đổi

Phiên bảnMô tả8. 0. 0____28 bây giờ là nullable. 7. 1. 0Hỗ trợ cho $filename6 phủ định đã được thêm vào

ví dụ

Ví dụ #1 Lấy và xuất mã nguồn của trang chủ của một trang web

filename49

Ví dụ #2 Tìm kiếm trong include_path

filename10

Ví dụ #3 Đọc một phần của tệp

filename11

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như

string[14] "lle Bjori Ro" 

Ví dụ #4 Sử dụng bối cảnh luồng

filename12

filename13

filename14

ghi chú

Ghi chú. Hàm này an toàn nhị phân

Mẹo

Một URL có thể được sử dụng làm tên tệp với chức năng này nếu trình bao bọc fopen đã được bật. Xem fopen[] để biết thêm chi tiết về cách chỉ định tên tệp. Xem Giao thức và Trình bao bọc được hỗ trợ để biết các liên kết đến thông tin về khả năng của các trình bao bọc khác nhau, ghi chú về cách sử dụng và thông tin về bất kỳ biến được xác định trước nào mà chúng có thể cung cấp

Cảnh báo

Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo filename15. PHP sẽ báo cáo điều này là "SSL. Fatal Protocol Error" khi bạn xem hết dữ liệu. Để giải quyết vấn đề này, giá trị của error_reporting phải được hạ xuống mức không bao gồm cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS có lỗi khi bạn mở luồng bằng trình bao bọc filename16 và sẽ chặn cảnh báo. Khi sử dụng fsockopen[] để tạo ổ cắm filename17, nhà phát triển chịu trách nhiệm phát hiện và loại bỏ cảnh báo này

Chủ Đề