defender::sanitize_array PHP Method

sanitize_array() static public method

static public sanitize_array ( $array )
    static function sanitize_array($array)
    {
        foreach ($array as $name => $value) {
            $array[stripinput($name)] = trim(censorwords(stripinput($value)));
        }
        return (array) $array;
    }

Usage Example

Example #1
0
 /**
  * MYSQL save/update panels
  */
 private function set_paneldb()
 {
     global $aidlink, $locale, $defender;
     if (isset($_POST['panel_save'])) {
         $this->data['panel_id'] = isset($_POST['panel_id']) ? form_sanitizer($_POST['panel_id'], '0', 'panel_id') : 0;
         $this->data['panel_name'] = isset($_POST['panel_name']) ? form_sanitizer($_POST['panel_name'], '', 'panel_name') : '';
         $this->data['panel_side'] = isset($_POST['panel_side']) ? form_sanitizer($_POST['panel_side'], 1, 'panel_side') : 1;
         $this->data['panel_access'] = isset($_POST['panel_access']) ? form_sanitizer($_POST['panel_access'], '0', 'panel_access') : 0;
         // panel name is unique
         $result = dbcount("(panel_id)", DB_PANELS, "panel_name='" . $this->data['panel_name'] . "' AND panel_id !='" . $this->data['panel_id'] . "'");
         if ($result) {
             $defender->stop();
             addNotice('danger', $locale['471']);
         }
         $this->data['panel_filename'] = isset($_POST['panel_filename']) ? form_sanitizer($_POST['panel_filename'], '', 'panel_filename') : '';
         // panel content formatting
         if ($this->data['panel_filename'] == 'none') {
             $this->data['panel_type'] = "php";
             $this->data['panel_content'] = isset($_POST['panel_content']) ? addslashes($_POST['panel_content']) : '';
             if (!$this->data['panel_content']) {
                 $this->data['panel_content'] = "opentable(\"name\");\n" . "echo \"Content\";\n" . "closetable();";
                 if ($this->data['panel_side'] == 1 || $this->data['panel_side'] == 4) {
                     $this->data['panel_content'] = "openside(\"name\");\n" . "echo \"Content\";\n" . "closeside();";
                 }
             }
         } else {
             $this->data['panel_content'] = '';
             $this->data['panel_type'] = "file";
         }
         // need to add fourth option. only show in front page.
         $this->data['panel_restriction'] = isset($_POST['panel_restriction']) ? form_sanitizer($_POST['panel_restriction'], '', 'panel_restriction') : 0;
         // 3, show on all, 2 = show on home page. 1 = exclude , 0 = include
         //  post 0 to include all , 1 to exclude all, show all.
         if ($this->data['panel_restriction'] == '3') {
             // show on all
             $this->data['panel_display'] = $this->data['panel_side'] !== 1 && $this->data['panel_side'] !== 4 ? 1 : 0;
             $this->data['panel_url_list'] = '';
         } elseif ($this->data['panel_restriction'] == '2') {
             // show on homepage only
             $this->data['panel_display'] = 0;
             $this->data['panel_url_list'] = '';
             if ($this->data['panel_side'] == 1 || $this->data['panel_side'] == 4) {
                 $this->data['panel_url_list'] = fusion_get_settings('opening_page');
                 // because 1 and 4 directly overide panel_display.
             }
         } else {
             // require panel_url_list in this case
             $this->data['panel_url_list'] = isset($_POST['panel_url_list']) ? form_sanitizer($_POST['panel_url_list'], '', 'panel_url_list') : '';
             if ($this->data['panel_url_list']) {
                 $this->data['panel_url_list'] = str_replace(",", "\r\n", $this->data['panel_url_list']);
                 if ($this->data['panel_restriction'] == 1) {
                     // exclude mode
                     $this->data['panel_display'] = $this->data['panel_side'] !== 1 && $this->data['panel_side'] !== 4 ? 1 : 0;
                 } else {
                     // include mode
                     $this->data['panel_display'] = $this->data['panel_side'] !== 1 && $this->data['panel_side'] !== 4 ? 1 : 0;
                 }
             } else {
                 $defender->stop();
                 addNotice('danger', $locale['475']);
             }
         }
         $panel_languages = isset($_POST['panel_languages']) ? \defender::sanitize_array($_POST['panel_languages']) : array();
         if (!empty($panel_languages)) {
             $this->data['panel_languages'] = implode('.', $panel_languages);
         }
         // panel order .. add to last or sort - no need since we already have drag and drop... but if they dont have jquery this would be a good idea.
         if ($this->data['panel_id'] && self::verify_panel($this->data['panel_id'])) {
             dbquery_insert(DB_PANELS, $this->data, 'update');
             addNotice('info', $locale['482']);
             if (!defined('FUSION_NULL')) {
                 redirect(FUSION_SELF . $aidlink . "&section=listpanel&status=su");
             }
         } else {
             // add panel order automatically
             $result = dbquery("SELECT panel_order FROM " . DB_PANELS . " WHERE panel_side='" . intval($this->data['panel_side']) . "' ORDER BY panel_order DESC LIMIT 1");
             if (dbrows($result) != 0) {
                 $data = dbarray($result);
                 $this->data['panel_order'] = $data['panel_order'] + 1;
             } else {
                 $this->data['panel_order'] = 1;
             }
             dbquery_insert(DB_PANELS, $this->data, 'save');
             addNotice('success', $locale['485']);
             if (!defined('FUSION_NULL')) {
                 redirect(FUSION_SELF . $aidlink . "&section=listpanel&status=sn");
             }
         }
     }
 }