コード例 #1
0
 function prepare_items()
 {
     /**
      * First, lets decide how many records per page to show
      */
     $per_page = 100;
     $columns = $this->get_columns();
     $hidden = array();
     $sortable = $this->get_sortable_columns();
     $this->_column_headers = array($columns, $hidden, $sortable);
     $this->process_bulk_action();
     global $wpdb;
     $events_table_name = AIOWPSEC_TBL_EVENTS;
     /* -- Ordering parameters -- */
     //Parameters that are going to be used to order the result
     isset($_GET["orderby"]) ? $orderby = strip_tags($_GET["orderby"]) : ($orderby = '');
     isset($_GET["order"]) ? $order = strip_tags($_GET["order"]) : ($order = '');
     $orderby = !empty($orderby) ? esc_sql($orderby) : 'id';
     $order = !empty($order) ? esc_sql($order) : 'DESC';
     $orderby = AIOWPSecurity_Utility::sanitize_value_by_array($orderby, $sortable);
     $order = AIOWPSecurity_Utility::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
     if (isset($_POST['s'])) {
         $search_term = trim($_POST['s']);
         $data = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $events_table_name . " WHERE `ip_or_host` LIKE '%%%s%%' OR `url` LIKE '%%%s%%' OR `referer_info` LIKE '%%%s%%'", $search_term, $search_term, $search_term), ARRAY_A);
     } else {
         $data = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$events_table_name} WHERE event_type=%s ORDER BY {$orderby} {$order}", '404'), ARRAY_A);
     }
     $new_data = array();
     foreach ($data as $row) {
         //lets insert an empty "status" column - we will use later
         $row['status'] = '';
         $new_data[] = $row;
     }
     $current_page = $this->get_pagenum();
     $total_items = count($new_data);
     $new_data = array_slice($new_data, ($current_page - 1) * $per_page, $per_page);
     $this->items = $new_data;
     $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items / $per_page)));
 }
コード例 #2
0
 function prepare_items()
 {
     /**
      * First, lets decide how many records per page to show
      */
     $per_page = 20;
     $columns = $this->get_columns();
     $hidden = array();
     $sortable = $this->get_sortable_columns();
     $this->_column_headers = array($columns, $hidden, $sortable);
     $this->process_bulk_action();
     global $wpdb;
     $block_table_name = AIOWPSEC_TBL_PERM_BLOCK;
     /* -- Ordering parameters -- */
     //Parameters that are going to be used to order the result
     isset($_GET["orderby"]) ? $orderby = strip_tags($_GET["orderby"]) : ($orderby = '');
     isset($_GET["order"]) ? $order = strip_tags($_GET["order"]) : ($order = '');
     $orderby = !empty($orderby) ? esc_sql($orderby) : 'id';
     $order = !empty($order) ? esc_sql($order) : 'DESC';
     $orderby = AIOWPSecurity_Utility::sanitize_value_by_array($orderby, $sortable);
     $order = AIOWPSecurity_Utility::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
     if (isset($_POST['s'])) {
         $search_term = trim($_POST['s']);
         $data = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $block_table_name . " WHERE `blocked_ip` LIKE '%%%s%%' OR `block_reason` LIKE '%%%s%%' OR `country_origin` LIKE '%%%s%%' OR `blocked_date` LIKE '%%%s%%'", $search_term, $search_term, $search_term, $search_term), ARRAY_A);
     } else {
         $data = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . $block_table_name . " WHERE id > %d ORDER BY {$orderby} {$order}", -1), ARRAY_A);
     }
     $current_page = $this->get_pagenum();
     $total_items = count($data);
     $data = array_slice($data, ($current_page - 1) * $per_page, $per_page);
     $this->items = $data;
     $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items / $per_page)));
 }
コード例 #3
0
 function prepare_items()
 {
     //First, lets decide how many records per page to show
     $per_page = 20;
     $columns = $this->get_columns();
     $hidden = array();
     $sortable = $this->get_sortable_columns();
     $this->_column_headers = array($columns, $hidden, $sortable);
     $this->process_bulk_action();
     global $wpdb;
     global $aio_wp_security;
     $minimum_comments_per_ip = $aio_wp_security->configs->get_value('aiowps_spam_ip_min_comments');
     if (empty($minimum_comments_per_ip)) {
         $minimum_comments_per_ip = 5;
     }
     /* -- Ordering parameters -- */
     //Parameters that are going to be used to order the result
     isset($_GET["orderby"]) ? $orderby = strip_tags($_GET["orderby"]) : ($orderby = '');
     isset($_GET["order"]) ? $order = strip_tags($_GET["order"]) : ($order = '');
     $orderby = !empty($orderby) ? esc_sql($orderby) : 'amount';
     $order = !empty($order) ? esc_sql($order) : 'DESC';
     $orderby = AIOWPSecurity_Utility::sanitize_value_by_array($orderby, $sortable);
     $order = AIOWPSecurity_Utility::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
     $sql = $wpdb->prepare("SELECT   comment_author_IP, COUNT(*) AS amount\n                FROM     {$wpdb->comments} \n                WHERE    comment_approved = 'spam'\n                GROUP BY comment_author_IP\n                HAVING   amount >= %d\n                ORDER BY {$orderby} {$order}\n                ", $minimum_comments_per_ip);
     $data = $wpdb->get_results($sql, ARRAY_A);
     //Get all permamnetly blocked IP addresses
     $block_list = AIOWPSecurity_Blocking::get_list_blocked_ips();
     if (!empty($block_list)) {
         foreach ($data as $key => $value) {
             if (in_array($value['comment_author_IP'], $block_list)) {
                 $data[$key]['status'] = 'blocked';
             }
         }
     }
     $current_page = $this->get_pagenum();
     $total_items = count($data);
     $data = array_slice($data, ($current_page - 1) * $per_page, $per_page);
     $this->items = $data;
     $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items / $per_page)));
 }
コード例 #4
0
 function prepare_items()
 {
     /**
      * First, lets decide how many records per page to show
      */
     $per_page = 20;
     $columns = $this->get_columns();
     $hidden = array();
     $sortable = $this->get_sortable_columns();
     $this->_column_headers = array($columns, $hidden, $sortable);
     $this->process_bulk_action();
     global $wpdb;
     $failed_logins_table_name = AIOWPSEC_TBL_FAILED_LOGINS;
     /* -- Ordering parameters -- */
     //Parameters that are going to be used to order the result
     isset($_GET["orderby"]) ? $orderby = strip_tags($_GET["orderby"]) : ($orderby = '');
     isset($_GET["order"]) ? $order = strip_tags($_GET["order"]) : ($order = '');
     $orderby = !empty($orderby) ? esc_sql($orderby) : 'failed_login_date';
     $order = !empty($order) ? esc_sql($order) : 'DESC';
     $orderby = AIOWPSecurity_Utility::sanitize_value_by_array($orderby, $sortable);
     $order = AIOWPSecurity_Utility::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
     $data = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$failed_logins_table_name} WHERE id > %d ORDER BY {$orderby} {$order}", -1), ARRAY_A);
     //Note: had to deliberately introduce WHERE clause because you need at least 2 arguments in prepare statement. Cannot use order/orderby
     $current_page = $this->get_pagenum();
     $total_items = count($data);
     $data = array_slice($data, ($current_page - 1) * $per_page, $per_page);
     $this->items = $data;
     $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items / $per_page)));
 }
コード例 #5
0
 function prepare_items()
 {
     /**
      * First, lets decide how many records per page to show
      */
     $per_page = 20;
     $columns = $this->get_columns();
     $hidden = array();
     $sortable = $this->get_sortable_columns();
     $this->_column_headers = array($columns, $hidden, $sortable);
     $this->process_bulk_action();
     global $wpdb;
     $lockdown_table_name = AIOWPSEC_TBL_LOGIN_LOCKDOWN;
     /* -- Ordering parameters -- */
     //Parameters that are going to be used to order the result
     isset($_GET["orderby"]) ? $orderby = strip_tags($_GET["orderby"]) : ($orderby = '');
     isset($_GET["order"]) ? $order = strip_tags($_GET["order"]) : ($order = '');
     $orderby = !empty($orderby) ? esc_sql($orderby) : 'lockdown_date';
     $order = !empty($order) ? esc_sql($order) : 'DESC';
     $orderby = AIOWPSecurity_Utility::sanitize_value_by_array($orderby, $sortable);
     $order = AIOWPSecurity_Utility::sanitize_value_by_array($order, array('DESC' => '1', 'ASC' => '1'));
     $data = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$lockdown_table_name} WHERE (lock_reason=%s OR lock_reason=%s) AND release_date > now() ORDER BY {$orderby} {$order}", 'login_fail', '404'), ARRAY_A);
     $current_page = $this->get_pagenum();
     $total_items = count($data);
     $data = array_slice($data, ($current_page - 1) * $per_page, $per_page);
     $this->items = $data;
     $this->set_pagination_args(array('total_items' => $total_items, 'per_page' => $per_page, 'total_pages' => ceil($total_items / $per_page)));
 }