Bộ lọc sản phẩm php

Trong các bài đọc trước, chúng ta đã biết phương pháp xác thực dữ liệu form bằng PHP, chúng ta cũng biết cách sử dụng các hàm xác thực dữ liệu của PHP [như preg_match[], preg_match_all[],

Dùng Filter trong PHP.';
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
echo $newstr;
?>
0, ...] để kiểm tra dữ liệu đầu vào nhập từ người dùng.

Trong bài đọc này, chúng ta sẽ làm quen thêm một phương pháp để lọc dữ liệu người dùng, đó là sử dụng các chức năng filters trong PHP.

Tại sao nên sử dụng filters?

Khi xây dựng một ứng dụng website có tương tác với người dùng, website của chúng ta thường xuyên phải gửi, nhận và xử lý dữ liệu. Các dữ liệu đó có thể là:

  • Người dùng nhập dữ liệu từ một biểu mẫu form
  • Dữ liệu cookie máy chủ nhận lại từ máy tính người dùng
  • Dữ liệu từ dịch vụ máy chủ server
  • Các biến server
  • Dữ liệu nhận từ các kết quả truy vấn cơ sở dữ liệu database
  • ...

Các dữ liệu nhận và gửi nếu không được xử lý xác thực, sẽ dẫn đến các vấn đề bảo mật, ảnh hưởng tới cấu trúc website của chúng ta.

Bằng cách sử dụng các chức năng filter của PHP, chúng ta luôn đảm bảo rằng các dữ liệu gửi và nhận được từ bên ngoài là phù hợp và chính xác cho các quá trình xử lý dữ liệu của website.

Filters extension PHP

PHP cung cấp nhiều chức năng filters cần thiết để chúng ta kiểm tra thông tin đầu vào của người dùng và được thiết kế để giúp xác thực dữ liệu một cách dễ dàng và nhanh chóng hơn.

Ví dụ sau dùng hàm

Dùng Filter trong PHP.';
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
echo $newstr;
?>
1 để in ra bảng danh sách tên các filters và ID của chúng mà PHP cung cấp cho chúng ta:

  
      
        
        
      
  
   $filter] {
    echo '';
  }
  ?>
Filter NameFilter ID
'.$filter.''.filter_id[$filter].'

Xem kết quả

Filter NameFilter IDint257boolean258float259validate_regexp272validate_domain277validate_url273validate_email274validate_ip275validate_mac276string513stripped513encoded514special_chars515full_special_chars522unsafe_raw516email517url518number_int519number_float520add_slashes523callback1024

Hàm filter_var[] trong PHP

Hàm

Dùng Filter trong PHP.';
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
echo $newstr;
?>
2 thường được sử dụng để lọc hoặc làm sạch dữ liệu đầu vào từ người dùng

Hàm

Dùng Filter trong PHP.';
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
echo $newstr;
?>
2 cần cung cấp dữ liệu đầu vào là một biến cần kiểm tra và loại type để kiểm tra biến đó

Ví dụ 1: Dùng hàm

Dùng Filter trong PHP.';
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
echo $newstr;
?>
2 xóa các thẻ HTML ra khỏi một chuỗi

Ví dụ

Dùng Filter trong PHP.';
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
echo $newstr;
?>

Xem kết quả

FILTER_SANITIZE_STRING thuộc bộ lọc string

Bộ lọc này sẽ xóa tất cả các thẻ và mã thoát HTML, một số các ký tự đặc biệt trong chuỗi.

Ví dụ 2: sử dụng hàm

Dùng Filter trong PHP.';
$newstr = filter_var[$str, FILTER_SANITIZE_STRING];
echo $newstr;
?>
2 để kiểm tra xem biến $int có phải là một số nguyên hay không. Nếu đúng thì xuất ra màn hình thông báo "Biến $int là số nguyên". Ngược lại thì "Biến $int không phải là số nguyên".

Ví dụ

Xem kết quả

Ở ví dụ trên, nếu biến $int có giá trị là 0 thì kết quả biểu thức trên sẽ là "Biến $int không phải là số nguyên". Để xử lý vấn đề trên, ta điều chỉnh lại đoạn code như sau:

Ví dụ

Xem kết quả

FILTER_VALIDATE_INT thuộc bộ lọc int

Bộ lọc này sẽ xác thực giá trị dưới dạng một url. Tùy chọn với các thành phần bắt buộc. Hãy lưu ý rằng một URL hợp lệ có thể không chỉ định giao thức HTTP //. Vì vậy, có thể cần phải xác thực thêm để xác định URL sử dụng một giao thức khác, ví dụ:

0 hoặc 
1. Lưu ý rằng hàm sẽ chỉ so khớp các URL ASCII là hợp lệ. Các tên miền quốc tế hóa [chứa các ký tự không phải ASCII] sẽ xác thực không thành công.

Cách lọc các sản phẩm trên trang danh mục sản phẩm woocommerce hiện tại bằng cách sử dụng 'self'

  • Cài đặt plugin này: //wordpress.org/plugins/widget-logic/other_notes/
  • Tạo tiện ích đặc biệt để lọc trên trang danh mục sản phẩm và đặt các tùy chọn này trên tiện ích này: 
  • Trong tiện ích con MDTF chính của bạn, hãy đặt điều kiện 'Logic tiện ích con' là: ! Isset [$ _ REQUEST ['MDF_IS_WOO_CAT']]
  • Trong tiện ích MDTF đặc biệt của bạn cho điều kiện đặt danh mục: Isset [$ _ REQUEST ['MDF_IS_WOO_CAT']] 
  • Mở trong chủ đề WordPress hiện tại của bạn lưu trữ-product.php tập tin thả mã tiếp theo như trên màn hình: 

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    if [is_product_taxonomy[]] {

        $_REQUEST['MDF_IS_WOO_CAT'] = TRUE;

        global $wp_query;

        $cat = $wp_query->get_queried_object[];

        $additional_tax_query_array = array[];

        $additional_tax_query_array[] = array[

            'taxonomy' => $cat->taxonomy,

            'field' => 'term_id',

            'terms' => array[$cat->term_id]

        ];

        $_REQUEST['MDF_ADDITIONAL_TAXONOMIES'] = $additional_tax_query_array;

    }

  • Trong cùng lưu trữ-product.php tập tin thả mã tiếp theo như trên màn hình: 

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

  • Chú thích: ví dụ này doesn làm việc ở chế độ ajax
  •  Xem demo của ví dụ này

Lượt xem bài đăng: 712

bài chuyển hướng

 Cách tạo trang cửa hàng woocommerce AJAXED

Cách ẩn bài đăng khỏi truy vấn tìm kiếm

Chủ Đề