Exemplo n.º 1
0
 public static function filterXmlInput(array $filters, $xmlrpc_params)
 {
     global $db, $mybb;
     require_once MYBB_ROOT . $mybb->settings['tapatalk_directory'] . '/emoji/emoji.class.php';
     $params = php_xmlrpc_decode($xmlrpc_params);
     // handle upload requests etc.
     if (empty($params) && !empty($_POST['method_name'])) {
         $params = array();
         foreach ($filters as $name => $type) {
             if (isset($_POST[$name])) {
                 $params[] = $_POST[$name];
             }
         }
     }
     $data = array();
     $i = 0;
     foreach ($filters as $name => $type) {
         switch ($type) {
             case self::INT:
                 if (isset($params[$i])) {
                     $data[$name] = intval($params[$i]);
                 } else {
                     $data[$name] = 0;
                 }
                 break;
             case self::ALPHASTRING:
                 if (isset($params[$i])) {
                     $data[$name] = preg_replace("#[^a-z\\.\\-_]#i", "", $params[$i]);
                 } else {
                     $data[$name] = '';
                 }
                 $data[$name . '_esc'] = $db->escape_string($data[$name]);
                 break;
             case self::STRING:
                 if (isset($params[$i])) {
                     if ($name == 'subject' || $name == 'post_title' || $name == 'title') {
                         $data[$name] = tapatalkEmoji::covertUnifiedToEmpty($params[$i]);
                     } else {
                         $data[$name] = tapatalkEmoji::covertEmojiToName($params[$i]);
                     }
                 } else {
                     $data[$name] = '';
                 }
                 $data[$name . '_esc'] = $db->escape_string($data[$name]);
                 break;
             case self::RAW:
                 $data[$name] = $params[$i];
                 break;
         }
         $i++;
     }
     return $data;
 }