Hàm filter_input_array[] là một hàm có sẵn trong PHP được sử dụng để lấy các biến bên ngoài [e. g. từ đầu vào biểu mẫu] và lọc chúng nếu nó được chỉ định. Hàm này tương tự như hàm filter_input[] nhưng điểm khác biệt duy nhất là filter_input[] lọc một giá trị nhưng trong filter_input_array[] lọc cả mảng theo các tùy chọn được cung cấp. Nó rất hữu ích để truy xuất/lọc nhiều giá trị thay vì gọi filter_input[] nhiều lần. Đây là tính năng mới trong PHP chỉ hoạt động trong PHP 5. 2 hoặc phiên bản mới nhất của PHP. cú pháp
mixed filter_input_array[ $type_of_data, $definition, $add_empty_parameter ]
Thông số. Hàm này chấp nhận ba tham số như đã đề cập ở trên và được mô tả bên dưới
- loại_dữ_liệu. Nó là tham số bắt buộc. Nó giữ kiểu đầu vào của dữ liệu để kiểm tra. Các tùy chọn có sẵn là
- INPUT_GET
- INPUT_POST
- INPUT_COOKIE
- INPUT_SERVER
- INPUT_ENV
- Định nghĩa. Nó là tham số tùy chọn. Nó chỉ định một mảng các đối số hoặc tham số của bộ lọc. Khóa mảng hợp lệ làm tên biến và giá trị hợp lệ làm tên bộ lọc hoặc ID hoặc một mảng chỉ định bộ lọc, cờ và tùy chọn. Tham số này cũng có thể là một tên/ID bộ lọc đơn giống như filter_input[] sau đó tất cả các giá trị trong mảng đầu vào được lọc bởi bộ lọc đã chỉ định
- add_empty_parameter. Nó là tham số tùy chọn. Nó là một tham số Boolean. Nó thêm các khóa bị thiếu dưới dạng NULL vào giá trị trả về khi nó được đặt thành True. Giá trị mặc định của nó là True
Giá trị trả về. Nó trả về một mảng chứa các giá trị của các biến khi thành công và khi thất bại, nó trả về Sai. Nếu mảng đầu vào được chỉ định theo loại không được điền, hàm sẽ trả về NULL nếu cờ FILTER_NULL_ON_FAILURE không được cung cấp, nếu không, nó trả về Sai. Đối với các lỗi khác, Sai được trả về. Các chương trình bên dưới minh họa hàm filter_input_array[] trong PHP. chương trình 1.
Trong bài viết trước, tôi đã nói về lý do sử dụng hàm lọc PHP hữu ích hơn là không
Nói tóm lại, làm như vậy giúp cung cấp mức độ xác thực được tích hợp sẵn trong ngôn ngữ để chúng tôi không phải viết lại điều gì đó. Đương nhiên, có những cảnh báo
Ví dụ: nếu bạn phải xác thực một giá trị không phải là ký tự Latinh, thì bạn sẽ phải thực hiện một mình và triển khai xác thực có thể bằng một biểu thức chính quy
Nhưng nếu bạn đang sử dụng địa chỉ email, URL, số, địa chỉ IP và nhiều thứ khác, thì bạn có thể sử dụng thứ gì đó đã tồn tại
Dù sao, tất cả những điều trên vẫn là về lọc các biến. Còn về đầu vào thì sao? . Có thể sử dụng một chiến lược tương tự với chức năng khác và bộ lọc khác
Nhưng nếu bạn hiểu những điều cơ bản được trình bày trong bài trước, thì bài này sẽ không khác lắm
Hàm lọc PHP, Phần 2. đầu vào
Lọc đầu vào được thực hiện bởi hàm filter_input
. Định nghĩa cho chức năng cụ thể này là
Nhận một biến bên ngoài cụ thể theo tên và tùy chọn lọc nó
Sổ tay PHP
Và, như đã đề cập lần trước, điều này nghe có vẻ hơi lạ cho đến khi bạn hiểu bộ lọc là gì. May mắn thay, chúng tôi đã đề cập đến điều này trong bài viết trước. Và mặc dù bài đăng này sẽ tập trung cụ thể vào
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...0 [và rất ngắn gọn là
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...1]
Có những bộ lọc khác mặc dù. Và chúng bao gồm
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...
2if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...
3if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...
4
Dù sao đi nữa, vì hai thao tác phổ biến nhất mà tôi thường thấy trong WordPress bao gồm
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...0 và
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...1, nên việc đưa hai thao tác này vào đây có vẻ quan trọng
Sử dụng các chức năng này rất dễ dàng. Giả sử rằng bạn có một giá trị đến từ thứ gì đó mà người dùng đã cung cấp trong biểu mẫu và họ đang gửi giá trị đó đến máy chủ bằng cách sử dụng yêu cầu
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...0 với khóa chẳng hạn như
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...3
Mã để xác minh nó có thể trông giống như thế này
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...
4
Điều này đủ dễ hiểu vì nó chỉ cần lấy khóa, lọc và sau đó trả về một giá trị. Và vì nó trả về một giá trị, nên chúng ta có thể thiết lập một mệnh đề bảo vệ trước khi tiếp tục với bất kỳ công việc nào nữa
if [false === filter_input[INPUT_POST, 'firstname']] { return; }
Nếu tất cả kiểm tra thì chúng tôi có thể tiếp tục làm bất cứ điều gì chúng tôi cần làm với thông tin người dùng. Có lẽ chúng ta cần liên kết nó với bài đăng hiện tại vì bất kỳ lý do gì
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...
Hơn nữa, bạn có thể bảo mật thông tin nhiều hơn thông qua việc sử dụng các bộ lọc khác nhau hiện có. Chúng được truyền dưới dạng tham số thứ ba cho hàm filter_input
Còn về if [false === filter_input[INPUT_POST, 'firstname']] {
return;
}
$firstname = filter_input[INPUT_POST, 'firstname'];
update_post_meta[get_the_ID[], 'acme-firstname', $firstname];
// Other code you may use...
1 thì sao?
Điều thú vị về chức năng này là, nói chung, các quy tắc tương tự vẫn đúng như với
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...0 ngoại trừ thay vì sử dụng
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...8, bạn sẽ sử dụng
if [false === filter_input[INPUT_POST, 'firstname']] { return; } $firstname = filter_input[INPUT_POST, 'firstname']; update_post_meta[get_the_ID[], 'acme-firstname', $firstname]; // Other code you may use...9
Và sau đó bạn có thể làm việc thông qua mã của mình, tuy nhiên, phù hợp nhất với nhu cầu của dự án của bạn
Bảo mật, Nonces, v.v.
Hãy nhớ rằng, đây không phải là thứ được sử dụng thay cho bảo mật. Điều này hoàn toàn nhằm mục đích bảo mật dữ liệu trước khi làm bất cứ điều gì với nó
Không thay thế việc xác minh các giá trị nonce chỉ vì bạn đang xác minh dữ liệu theo cách khác
Biến và đầu vào
Hãy nhớ rằng, mặc dù các hàm này là các biến rất giống nhau và các đầu vào khác nhau. Nói cách khác, đừng cố sử dụng $_POST
0 khi bạn đang làm việc với đầu vào đến từ người dùng hoặc trình duyệt. Sử dụng nó bất cứ khi nào bạn đang làm việc với các biến. Và, tương tự, sử dụng ht e