WordPress.org

Make WordPress Core

Ticket #6813: press-this-fixes-hotlinking-6-23-5pm.diff

File press-this-fixes-hotlinking-6-23-5pm.diff, 2.9 KB (added by noel, 6 years ago)

High Priority! Fixes image uploading hotlinking issue.

  • wp-admin/press-this.php

     
    44if ( ! current_user_can('publish_posts') ) wp_die( __( 'Cheatin’ uh?' )); ?> 
    55 
    66<?php  
     7 
     8function preg_quote2($string) { 
     9        return str_replace('/', '\/', preg_quote($string)); 
     10} 
    711function press_it() { 
    8         #define some basic variables 
     12        // define some basic variables 
    913        $quick['post_status'] = $_REQUEST['post_status']; 
    1014        $quick['post_category'] = $_REQUEST['post_category']; 
    1115        $quick['tags_input'] = $_REQUEST['tags_input']; 
    1216        $quick['post_title'] = $_REQUEST['post_title']; 
    1317        $quick['post_content'] = ''; 
    1418                 
    15         # insert the post with nothing in it, to get an ID 
     19        // insert the post with nothing in it, to get an ID 
    1620        $post_ID = wp_insert_post($quick, true); 
    1721                 
    1822        $content = ''; 
     
    2327                        break; 
    2428                 
    2529                case 'photo': 
    26                         foreach($_REQUEST['photo_src'] as $key => $data) { 
     30                        $content = $_REQUEST['content']; 
     31                         
     32                        foreach($_REQUEST['photo_src'] as $key => $image) { 
    2733                                #quote for matching 
    28                                 $quoted = str_replace('/', '\/', preg_quote($data)); 
     34                                $quoted = preg_quote2($image); 
    2935                                 
    30                                 # see if files exist in content - we don't want to upload non-used selected files. 
     36                                // see if files exist in content - we don't want to upload non-used selected files. 
    3137                                preg_match('/'.$quoted.'/', $_REQUEST['content'], $matches[0]); 
    32                                 if($matches[0]) 
    33                                         $upload = media_sideload_image($data, $post_ID, $_REQUEST['photo_description'][$key]);   
     38                                if($matches[0]) { 
     39                                        $upload = media_sideload_image($image, $post_ID, $_REQUEST['photo_description'][$key]); 
     40                                        // Replace the POSTED content <img> with correct uploaded ones. 
     41                                        if( !is_wp_error($upload) ) $content = preg_replace('/<img ([^>]*)src=(\"|\')'.$quoted.'(\2)([^>\/]*)\/*>/is', $upload, $content); 
     42                                } 
    3443                        } 
    35                         $content = $_REQUEST['content']; 
     44                         
    3645                        break; 
    3746                         
    3847                case "video": 
  • wp-admin/includes/media.php

     
    151151        $id = wp_insert_attachment($attachment, $file, $post_parent); 
    152152        if ( !is_wp_error($id) ) { 
    153153                wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); 
    154                 return $src; 
     154                return $url; 
    155155        } 
    156          
    157156        return $id; 
    158  
    159157} 
    160158 
    161159 
     
    321319                $desc = @$desc; 
    322320                 
    323321                $id = media_handle_sideload($file_array, $post_id, $desc); 
     322                $src = $id; 
     323 
    324324                unset($file_array); 
    325                  
     325 
    326326                if ( is_wp_error($id) ) { 
    327327                        $errors['upload_error'] = $id; 
    328328                        return $id; 
    329                 } else { 
    330                         $src = $id; 
    331329                } 
    332330        } 
    333          
    334         if (!empty($src) && !strpos($src, '://') ) { 
    335                 $src = "http://$src"; 
    336                 $alt = @$desc; 
    337         } 
     331 
    338332        if ( !empty($src) ) { 
     333                if ( !strpos($src, '://') ) 
     334                        $src = "http://$src"; 
     335                $alt = @$desc; 
    339336                $html = "<img src='$src' alt='$alt' />"; 
    340337                return $html; 
    341338        }