Make WordPress Core

Ticket #1699: 1699.2.diff

File 1699.2.diff, 4.3 KB (added by skeltoac, 20 years ago)

Now escaping arrays/objects only

  • functions.php

     
    402402}
    403403
    404404function add_post_meta($post_id, $key, $value, $unique = false) {
    405         global $wpdb;
     405        global $wpdb, $post_meta_cache;
    406406       
    407407        if ($unique) {
    408408                if( $wpdb->get_var("SELECT meta_key FROM $wpdb->postmeta WHERE meta_key
     
    411411                }
    412412        }
    413413
     414        $original = $value;
     415        if ( is_array($value) || is_object($value) )
     416                $value = $wpdb->escape(serialize($value));
     417
    414418        $wpdb->query("INSERT INTO $wpdb->postmeta
    415419                                (post_id,meta_key,meta_value)
    416420                                VALUES ('$post_id','$key','$value')
    417421                        ");
    418        
     422
     423        $post_meta_cache['$post_id'][$key][] = $original;
     424
    419425        return true;
    420426}
    421427
    422428function delete_post_meta($post_id, $key, $value = '') {
    423         global $wpdb;
     429        global $wpdb, $post_meta_cache;
    424430
    425431        if (empty($value)) {
    426432                $meta_id = $wpdb->get_var("SELECT meta_id FROM $wpdb->postmeta WHERE
     
    435441        if (empty($value)) {
    436442                $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = '$post_id'
    437443AND meta_key = '$key'");
     444                unset($post_meta_cache['$post_id'][$key]);
    438445        } else {
    439446                $wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = '$post_id'
    440447AND meta_key = '$key' AND meta_value = '$value'");
     448                $cache_key = $post_meta_cache['$post_id'][$key];
     449                foreach ( $cache_key as $index => $data )
     450                        if ( $data == $value )
     451                                unset($post_meta_cache['$post_id'][$key][$index]);
    441452        }
     453
     454        unset($post_meta_cache['$post_id'][$key]);
    442455       
    443456        return true;
    444457}
     
    465478
    466479        if ($single) {
    467480                if (count($values)) {
    468                         return $values[0];
     481                        $return = $values[0];
    469482                } else {
    470483                        return '';
    471484                }
    472485        } else {
    473                 return $values;
     486                $return = $values;
    474487        }
     488
     489        @ $kellogs = unserialize($return);
     490        if ($kellogs !== FALSE)
     491                return $kellogs;
     492        else return $return;
    475493}
    476494
    477495function update_post_meta($post_id, $key, $value, $prev_value = '') {
    478496        global $wpdb, $post_meta_cache;
    479497
    480                 if(! $wpdb->get_var("SELECT meta_key FROM $wpdb->postmeta WHERE meta_key
     498        $original_value = $value;
     499        if ( is_array($value) || is_object($value) )
     500                $value = $wpdb->escape(serialize($value));
     501
     502        $original_prev = $prev_value;
     503        if ( is_array($prev_value) || is_object($prev_value) )
     504                $prev_value = serialize($value);
     505               
     506        if(! $wpdb->get_var("SELECT meta_key FROM $wpdb->postmeta WHERE meta_key
    481507= '$key' AND post_id = '$post_id'") ) {
    482                         return false;
    483                 }
     508                return false;
     509        }
    484510
    485511        if (empty($prev_value)) {
    486512                $wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '$value' WHERE
    487513meta_key = '$key' AND post_id = '$post_id'");
     514                $cache_key = $post_meta_cache['$post_id'][$key];
     515                foreach ($cache_key as $index => $data)
     516                        $post_meta_cache['$post_id'][$key][$index] = $original_value;
    488517        } else {
    489518                $wpdb->query("UPDATE $wpdb->postmeta SET meta_value = '$value' WHERE
    490519meta_key = '$key' AND post_id = '$post_id' AND meta_value = '$prev_value'");
     520                $cache_key = $post_meta_cache['$post_id'][$key];
     521                foreach ($cache_key as $index => $data)
     522                        if ( $data == $original_prev )
     523                                $post_meta_cache['$post_id'][$key][$index] = $original_value;
    491524        }
    492525
    493526        return true;
     
    842875                $doping = true;
    843876        }
    844877        if($doping)
    845                 echo '<iframe src="' .  get_settings('siteurl') .'/wp-admin/execute-pings.php?time=' . time() . '" style="border:none;width:1px;height:1px;"></iframe>';
     878                echo '<iframe id="pingcheck" src="' .  get_settings('siteurl') .'/wp-admin/execute-pings.php?time=' . time() . '" style="border:none;width:1px;height:1px;"></iframe>';
    846879}
    847880
    848881function do_enclose( $content, $post_ID ) {
     
    20472080                $meta_value = serialize($meta_value);
    20482081
    20492082        $cur = $wpdb->get_row("SELECT * FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
    2050         if ( !$cur && !empty( $meta_value ) ) {
     2083        if ( !$cur ) {
    20512084                $wpdb->query("INSERT INTO $wpdb->usermeta ( user_id, meta_key, meta_value )
    20522085                VALUES
    20532086                ( '$user_id', '$meta_key', '$meta_value' )");
     
    20552088        }
    20562089        if ( $cur->meta_value != $meta_value )
    20572090                $wpdb->query("UPDATE $wpdb->usermeta SET meta_value = '$meta_value' WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
    2058         if ( empty( $meta_value ) )
    2059                 $wpdb->query("DELETE FROM $wpdb->usermeta WHERE user_id = '$user_id' AND meta_key = '$meta_key'");
    20602091}
    20612092
    20622093function register_activation_hook($file, $function) {