Ticket #1683: 1683.2.diff

File 1683.2.diff, 21.9 KB (added by skeltoac, 7 years ago)

svn diff

  • wp-includes/functions-post.php

     
    456456        return false; 
    457457} 
    458458 
    459 function wp_new_comment( $commentdata, $spam = false ) { 
    460         global $wpdb; 
    461  
    462         $commentdata = apply_filters('preprocess_comment', $commentdata); 
    463         extract($commentdata); 
    464  
    465         $comment_post_ID = (int) $comment_post_ID; 
    466  
    467         $user_id = apply_filters('pre_user_id', $user_ID); 
    468         $author  = apply_filters('pre_comment_author_name', $comment_author); 
    469         $email   = apply_filters('pre_comment_author_email', $comment_author_email); 
    470         $url     = apply_filters('pre_comment_author_url', $comment_author_url); 
    471         $comment = apply_filters('pre_comment_content', $comment_content); 
    472         $comment = apply_filters('post_comment_text', $comment); // Deprecated 
    473         $comment = apply_filters('comment_content_presave', $comment); // Deprecated 
    474  
    475         $user_ip     = apply_filters('pre_comment_user_ip', $_SERVER['REMOTE_ADDR']); 
    476         $user_domain = apply_filters('pre_comment_user_domain', gethostbyaddr($user_ip) ); 
    477         $user_agent  = apply_filters('pre_comment_user_agent', $_SERVER['HTTP_USER_AGENT']); 
    478  
    479         $now     = current_time('mysql'); 
    480         $now_gmt = current_time('mysql', 1); 
    481  
    482         if ( $user_id ) { 
    483                 $userdata = get_userdata($user_id); 
    484                 $user = new WP_User($user_id); 
    485                 $post_author = $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = '$comment_post_ID' LIMIT 1"); 
    486         } 
    487  
    488         // Simple duplicate check 
    489         $dupe = "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = '$comment_post_ID' AND ( comment_author = '$author' "; 
    490         if ( $email ) $dupe .= "OR comment_author_email = '$email' "; 
    491         $dupe .= ") AND comment_content = '$comment' LIMIT 1"; 
    492         if ( $wpdb->get_var($dupe) ) 
    493                 die( __('Duplicate comment detected; it looks as though you\'ve already said that!') ); 
    494  
    495         // Simple flood-protection 
    496         if ( $lasttime = $wpdb->get_var("SELECT comment_date_gmt FROM $wpdb->comments WHERE comment_author_IP = '$user_ip' OR comment_author_email = '$email' ORDER BY comment_date DESC LIMIT 1") ) { 
    497                 $time_lastcomment = mysql2date('U', $lasttime); 
    498                 $time_newcomment  = mysql2date('U', $now_gmt); 
    499                 if ( ($time_newcomment - $time_lastcomment) < 15 ) { 
    500                         do_action('comment_flood_trigger', $time_lastcomment, $time_newcomment); 
    501                         die( __('Sorry, you can only post a new comment once every 15 seconds. Slow down cowboy.') ); 
    502                 } 
    503         } 
    504  
    505         if ( $userdata && ( $user_id == $post_author || $user->has_cap('level_9') ) ) { 
    506                 $approved = 1; 
    507         } else { 
    508                 if ( check_comment($author, $email, $url, $comment, $user_ip, $user_agent, $comment_type) ) 
    509                         $approved = 1; 
    510                 else 
    511                         $approved = 0; 
    512                 if ( wp_blacklist_check($author, $email, $url, $comment, $user_ip, $user_agent) ) 
    513                         $approved = 'spam'; 
    514         } 
    515  
    516         $approved = apply_filters('pre_comment_approved', $approved); 
    517  
    518         $result = $wpdb->query("INSERT INTO $wpdb->comments  
    519         (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content, comment_approved, comment_agent, comment_type, user_id) 
    520         VALUES  
    521         ('$comment_post_ID', '$author', '$email', '$url', '$user_ip', '$now', '$now_gmt', '$comment', '$approved', '$user_agent', '$comment_type', '$user_id') 
    522         "); 
    523  
    524         $comment_id = $wpdb->insert_id; 
    525         do_action('comment_post', $comment_id, $approved); 
    526  
    527         if ( 'spam' !== $approved ) { // If it's spam save it silently for later crunching 
    528                 if ( '0' == $approved ) 
    529                         wp_notify_moderator($comment_id); 
    530          
    531                 if ( get_settings('comments_notify') && $approved ) 
    532                         wp_notify_postauthor($comment_id, $comment_type); 
    533         } 
    534  
    535         return $result; 
    536 } 
    537  
    538 function wp_update_comment($commentarr) { 
    539         global $wpdb; 
    540  
    541         // First, get all of the original fields 
    542         $comment = get_comment($commentarr['comment_ID'], ARRAY_A); 
    543  
    544         // Escape data pulled from DB. 
    545         foreach ($comment as $key => $value) 
    546                 $comment[$key] = $wpdb->escape($value); 
    547  
    548         // Merge old and new fields with new fields overwriting old ones. 
    549         $commentarr = array_merge($comment, $commentarr); 
    550  
    551         // Now extract the merged array. 
    552         extract($commentarr); 
    553  
    554         $comment_content = apply_filters('comment_save_pre', $comment_content); 
    555  
    556         $result = $wpdb->query( 
    557                 "UPDATE $wpdb->comments SET 
    558                         comment_content = '$comment_content', 
    559                         comment_author = '$comment_author', 
    560                         comment_author_email = '$comment_author_email', 
    561                         comment_approved = '$comment_approved', 
    562                         comment_author_url = '$comment_author_url', 
    563                         comment_date = '$comment_date' 
    564                 WHERE comment_ID = $comment_ID" ); 
    565  
    566         $rval = $wpdb->rows_affected; 
    567  
    568         do_action('edit_comment', $comment_ID); 
    569  
    570         return $rval;    
    571 } 
    572  
    573459function do_trackbacks($post_id) { 
    574460        global $wpdb; 
    575461 
  • wp-includes/comment-functions.php

     
    3030        endif; 
    3131} 
    3232 
     33function wp_new_comment( $commentdata ) { 
     34        $commentdata = apply_filters('preprocess_comment', $commentdata); 
     35 
     36        $commentdata['comment_post_ID'] = (int) $commentdata['comment_post_ID']; 
     37        $commentdata['comment_author_IP'] = $_SERVER['REMOTE_ADDR']; 
     38        $commentdata['comment_agent'] = $_SERVER['HTTP_USER_AGENT']; 
     39        $commentdata['comment_date'] = current_time('mysql'); 
     40        $commentdata['comment_date_gmt'] = current_time('mysql', 1); 
     41 
     42        $commentdata = wp_filter_comment($commentdata); 
     43 
     44        $commentdata['comment_approved'] = wp_allow_comment($commentdata); 
     45 
     46        $comment_ID = wp_insert_comment($commentdata); 
     47 
     48        do_action('comment_post', $comment_ID, $commentdata['approved']); 
     49 
     50        if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching 
     51                if ( '0' == $commentdata['comment_approved'] ) 
     52                        wp_notify_moderator($comment_ID); 
     53         
     54                if ( get_settings('comments_notify') && $commentdata['comment_approved'] ) 
     55                        wp_notify_postauthor($comment_ID, $commentdata['comment_type']); 
     56        } 
     57 
     58        return $comment_id; 
     59} 
     60 
     61function wp_insert_comment($commentdata) { 
     62        global $wpdb; 
     63        extract($commentdata); 
     64 
     65        if ( ! isset($comment_author_IP) ) 
     66                $comment_author_IP = $_SERVER['REMOTE_ADDR']; 
     67        if ( ! isset($comment_date) ) 
     68                $comment_date = current_time('mysql'); 
     69        if ( ! isset($comment_date_gmt) ) 
     70                $comment_date_gmt = gmdate('Y-m-d H:i:s', strtotime($comment_date) ); 
     71 
     72        $result = $wpdb->query("INSERT INTO $wpdb->comments  
     73        (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content, comment_approved, comment_agent, comment_type, comment_parent, user_id) 
     74        VALUES  
     75        ('$comment_post_ID', '$comment_author', '$comment_author_email', '$comment_author_url', '$comment_author_IP', '$comment_date', '$comment_date_gmt', '$comment_content', '$comment_approved', '$comment_agent', '$comment_type', '$comment_parent', '$user_id') 
     76        "); 
     77 
     78        return $wpdb->insert_id; 
     79} 
     80 
     81function wp_filter_comment($commentdata) { 
     82        $commentdata['user_id'] = apply_filters('pre_user_id', $commentdata['user_ID']); 
     83        $commentdata['comment_agent'] = apply_filters('pre_comment_user_agent', $commentdata['comment_agent']); 
     84        $commentdata['comment_author'] = apply_filters('pre_comment_author_name', $commentdata['comment_author']); 
     85        $commentdata['comment_content'] = apply_filters('pre_comment_content', $commentdata['comment_content']); 
     86        $commentdata['comment_author_IP'] = apply_filters('pre_comment_user_ip', $commentdata['comment_author_IP']); 
     87        $commentdata['comment_author_url'] = apply_filters('pre_comment_author_url', $commentdata['comment_author_url']); 
     88        $commentdata['comment_author_email'] = apply_filters('pre_comment_author_email', $commentdata['comment_author_email']); 
     89        $commentdata['filtered'] = true; 
     90        return $commentdata; 
     91} 
     92 
     93function wp_allow_comment($commentdata) { 
     94        global $wpdb; 
     95        extract($commentdata); 
     96 
     97        $comment_user_domain = apply_filters('pre_comment_user_domain', gethostbyaddr($comment_author_ip) ); 
     98 
     99        // Simple duplicate check 
     100        $dupe = "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = '$comment_post_ID' AND ( comment_author = '$comment_author' "; 
     101        if ( $comment_author_email ) 
     102                $dupe .= "OR comment_author_email = '$comment_author_email' "; 
     103        $dupe .= ") AND comment_content = '$comment_content' LIMIT 1"; 
     104        if ( $wpdb->get_var($dupe) ) 
     105                die( __('Duplicate comment detected; it looks as though you\'ve already said that!') ); 
     106 
     107        // Simple flood-protection 
     108        if ( $lasttime = $wpdb->get_var("SELECT comment_date_gmt FROM $wpdb->comments WHERE comment_author_IP = '$comment_author_IP' OR comment_author_email = '$comment_author_email' ORDER BY comment_date DESC LIMIT 1") ) { 
     109                $time_lastcomment = mysql2date('U', $lasttime); 
     110                $time_newcomment  = mysql2date('U', $comment_date_gmt); 
     111                if ( ($time_newcomment - $time_lastcomment) < 15 ) { 
     112                        do_action('comment_flood_trigger', $time_lastcomment, $time_newcomment); 
     113                        die( __('Sorry, you can only post a new comment once every 15 seconds. Slow down cowboy.') ); 
     114                } 
     115        } 
     116 
     117        if ( $user_id ) { 
     118                $userdata = get_userdata($user_id); 
     119                $user = new WP_User($user_id); 
     120                $post_author = $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = '$comment_post_ID' LIMIT 1"); 
     121        } 
     122 
     123        // The author and the admins get respect. 
     124        if ( $userdata && ( $user_id == $post_author || $user->has_cap('level_9') ) ) { 
     125                $approved = 1; 
     126        } 
     127 
     128        // Everyone else's comments will be checked. 
     129        else { 
     130                if ( check_comment($comment_author, $comment_author_email, $comment_author_url, $comment_content, $comment_author_IP, $comment_agent, $comment_type) ) 
     131                        $approved = 1; 
     132                else 
     133                        $approved = 0; 
     134                if ( wp_blacklist_check($comment_author, $comment_author_email, $comment_author_url, $comment_content, $comment_author_IP, $comment_agent) ) 
     135                        $approved = 'spam'; 
     136        } 
     137 
     138        $approved = apply_filters('pre_comment_approved', $approved); 
     139        return $approved; 
     140} 
     141 
     142 
     143function wp_update_comment($commentarr) { 
     144        global $wpdb; 
     145 
     146        // First, get all of the original fields 
     147        $comment = get_comment($commentarr['comment_ID'], ARRAY_A); 
     148 
     149        // Escape data pulled from DB. 
     150        foreach ($comment as $key => $value) 
     151                $comment[$key] = $wpdb->escape($value); 
     152 
     153        // Merge old and new fields with new fields overwriting old ones. 
     154        $commentarr = array_merge($comment, $commentarr); 
     155 
     156        // Now extract the merged array. 
     157        extract($commentarr); 
     158 
     159        $comment_content = apply_filters('comment_save_pre', $comment_content); 
     160 
     161        $result = $wpdb->query( 
     162                "UPDATE $wpdb->comments SET 
     163                        comment_content = '$comment_content', 
     164                        comment_author = '$comment_author', 
     165                        comment_author_email = '$comment_author_email', 
     166                        comment_approved = '$comment_approved', 
     167                        comment_author_url = '$comment_author_url', 
     168                        comment_date = '$comment_date' 
     169                WHERE comment_ID = $comment_ID" ); 
     170 
     171        $rval = $wpdb->rows_affected; 
     172 
     173        do_action('edit_comment', $comment_ID); 
     174 
     175        return $rval;    
     176} 
     177 
    33178function clean_url( $url ) { 
    34179        if ('' == $url) return $url; 
    35180        $url = preg_replace('|[^a-z0-9-~+_.?#=&;,/:]|i', '', $url); 
  • wp-admin/import/blogger.php

     
    2121                echo '<div class="wrap">'; 
    2222                echo '<h2>'.__('Import Blogger').'</h2>'; 
    2323                _e("<p>Howdy! This importer allows you to import posts and comments from your Blogger account into your WordPress blog.</p> 
    24 <p>Before you get started, you may want to back up your Blogger template by copying and pasting it into a text file on your computer. This script has to modify your template and other Blogger settings so it can get your posts and comments. It should restore everything afterwards but if you have put a lot of work into your template, it would be a good idea to make your own backup first.</p> 
     24<p>Before you get started, you should <u>back up your Blogger template</u> by copying and pasting it into a text file on your computer. This script has to modify your template and other Blogger settings so it can get your posts and comments. It should restore everything afterwards but if you have put a lot of work into your template, it would be a good idea to make your own backup first.</p> 
    2525<p>When you are ready to begin, enter your Blogger username and password below and click Start. Do not close this window until the process is complete.</p>"); 
    2626                echo "<iframe src='admin.php?import=blogger&noheader=true' height='350px' width = '99%'></iframe>"; 
    2727                echo "<p><a href='admin.php?import=blogger&amp;restart=true&amp;noheader=true' onclick='return confirm(\"This will delete everything saved by the Blogger importer. Are you sure you want to do this?\")'>Reset this importer</a></p>"; 
     
    3737 
    3838        // Generates a string that will make the page reload in a specified interval. 
    3939        function refresher($msec) { 
    40                 return "<html><head><script type='text/javascript'>window.onload=setInterval('window.location.reload()', $msec);</script>\n</head>\n<body>"; 
     40                if ( $msec ) 
     41                        return "<html><head><script type='text/javascript'>window.onload=setTimeout('window.location.reload()', $msec);</script>\n</head>\n<body>\n"; 
     42                else 
     43                        return "<html><head><script type='text/javascript'>window.onload=window.location.reload();</script>\n</head>\n<body>\n"; 
    4144        } 
    4245 
    4346        // Returns associative array of code, header, cookies, body. Based on code from php.net. 
     
    7881                curl_setopt($ch, CURLOPT_POST,1); 
    7982                curl_setopt($ch, CURLOPT_POSTFIELDS,$params); 
    8083                curl_setopt($ch, CURLOPT_URL,$_url); 
    81                 curl_setopt($ch, CURLOPT_USERAGENT, 'Developing Blogger Exporter'); 
     84                curl_setopt($ch, CURLOPT_USERAGENT, 'Blogger Exporter'); 
    8285                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
    8386                curl_setopt($ch, CURLOPT_HEADER,1); 
    8487                curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
     
    98101                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    99102                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    100103                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     104                curl_setopt($ch, CURLOPT_USERAGENT, 'Blogger Exporter'); 
    101105                curl_setopt($ch, CURLOPT_HEADER,1); 
    102106                if (is_array($header)) curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
    103107                $response = curl_exec ($ch); 
     
    130134                curl_setopt($ch, CURLOPT_POSTFIELDS,$params); 
    131135                if ($user && $pass) curl_setopt($ch, CURLOPT_USERPWD,"{$user}:{$pass}"); 
    132136                curl_setopt($ch, CURLOPT_URL,$url); 
    133                 curl_setopt($ch, CURLOPT_USERAGENT, 'Developing Blogger Exporter'); 
     137                curl_setopt($ch, CURLOPT_USERAGENT, 'Blogger Exporter'); 
    134138                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    135139                curl_setopt($ch, CURLOPT_HEADER,$parse); 
    136140                curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
     
    165169        } 
    166170 
    167171        // Publishes. 
    168         function publish_blogger($i) { 
     172        function publish_blogger($i, $text) { 
     173                $head = $this->refresher(1000) . "<h1>$text</h1>\n"; 
    169174                if ( ! $this->import['blogs'][$_GET['blog']]['publish'][$i] ) { 
    170175                        // First call. Start the publish process. 
    171176                        $paramary = array('blogID' => $_GET['blog'], 'all' => '1', 'republishAll' => 'Republish Entire Blog', 'publish' => '1', 'redirectUrl' => "/publish.do?blogID={$_GET['blog']}&inprogress=true"); 
     
    177182                                $response = $this->get_blogger($url, $this->import['cookies']); 
    178183                                if ( preg_match('#<p class="progressIndicator">.*</p>#U', $response['body'], $matches) ) { 
    179184                                        $progress = $matches[0]; 
    180                                         die($progress); 
     185                                        die($head . $progress); 
    181186                                } else { 
    182187                                        echo "matches:<pre>" . print_r($matches,1) . "</pre>\n"; 
    183188                                } 
    184189                        } else { 
    185                                 echo "<h1>Publish error: No 302</h1><p>Please tell the devs.</p><pre>" . addslashes(print_r($response,1)) . "</pre>\n"; 
     190                                if ( strstr($response['body'], 'Please sign in before proceeding') ) { 
     191                                        $this->import['cookies'] = $this->login_blogger($this->import['user'], $this->import['pass']); 
     192                                        update_option('import-blogger', $this->import); 
     193                                        die($this->refresher(500) . "<h1>Logging into Blogger again...</h1>"); 
     194                                } else { 
     195                                        echo "<h1>Publish error: No 302</h1><p>Please tell the devs.</p><pre>" . addslashes(print_r($response,1)) . "</pre>\n"; 
     196                                } 
    186197                        } 
    187198                        die(); 
    188199                } else { 
     
    193204                                $progress = $matches[0]; 
    194205                                if ( strstr($progress, '100%') ) 
    195206                                        $this->set_next_step($i); 
    196                                 die($progress); 
     207                                die($head . $progress); 
    197208                        } else { 
    198209                                echo "<h1>Publish error: No matches</h1><p>Please tell the devs.</p><pre>" . print_r($matches,1) . "</pre>\n"; 
    199210                        } 
     
    270281                                        'publish_cookies' => false, 
    271282                                        'published' => false, 
    272283                                        'archives' => false, 
    273                                         'newusers' => array(), 
    274284                                        'lump_authors' => false, 
    275285                                        'newusers' => 0, 
    276286                                        'nextstep' => 2 
     
    367377 
    368378        // Step 3: Publish with the new template and settings. 
    369379        function publish_blog() { 
    370                 echo $this->refresher(2400) . "<h1>Publishing with new template and options</h1>\n"; 
    371                 $this->publish_blogger(5); 
     380                $this->publish_blogger(5, 'Publishing with new template and options'); 
    372381        } 
    373382 
    374383        // Step 4: Deprecated. :-D 
     
    402411                                $skippedpostcount = 0; 
    403412                                $commentcount = 0; 
    404413                                $skippedcommentcount = 0; 
    405                                 $status = ''; 
     414                                $status = 'in progress...'; 
     415                                $this->import['blogs'][$_GET['blog']]['archives']["$url"] = $status; 
     416                                update_option('import-blogger', $import); 
    406417                                $archive = implode('',file($url)); 
    407418         
    408419                                $posts = explode('<wordpresspost>', $archive); 
     
    416427                                        // big to handle as ints. 
    417428                                        //$post_number = $postinfo[3]; 
    418429                                        $post_title = ( $postinfo[4] != '' ) ? $postinfo[4] : $postinfo[3]; 
    419                                         $post_author = trim($wpdb->escape($postinfo[1])); 
    420                                         $post_author_name = trim(addslashes($postinfo[1])); 
     430                                        $post_author_name = $wpdb->escape(trim($postinfo[1])); 
    421431                                        $post_author_email = $postinfo[5] ? $postinfo[5] : 'no@email.com'; 
    422432         
    423433                                        if ( $this->import['blogs'][$_GET['blog']]['lump_authors'] ) { 
     
    464474                         
    465475                                        $post_status = 'publish'; 
    466476         
    467                                         if ( post_exists($post_title, '', $post_date) ) { 
     477                                        if ( $comment_post_ID = post_exists($post_title, '', $post_date) ) { 
    468478                                                $skippedpostcount++; 
    469                                                 $comment_post_ID = $dupcheck[0]['ID']; 
    470479                                        } else { 
    471480                                                $post_array = compact('post_author', 'post_content', 'post_title', 'post_category', 'post_author', 'post_date', 'post_status'); 
    472481                                                $comment_post_ID = wp_insert_post($post_array); 
     
    490499                                                else if (($comment_date[2] == 'AM') && ($commenthour == '12')) 
    491500                                                        $commenthour = '00'; 
    492501                                                $comment_date = "$commentyear-$commentmonth-$commentday $commenthour:$commentminute:$commentsecond"; 
    493                                                 $comment_author = addslashes(strip_tags(html_entity_decode($commentinfo[1]))); // Believe it or not, Blogger allows a user to call himself "Mr. Hell's Kitchen" which, as a string, really confuses SQL. 
     502                                                $comment_author = addslashes(strip_tags(html_entity_decode($commentinfo[1]))); 
    494503                                                if ( strpos($commentinfo[1], 'a href') ) { 
    495504                                                        $comment_author_parts = explode('&quot;', htmlentities($commentinfo[1])); 
    496505                                                        $comment_author_url = $comment_author_parts[1]; 
    497506                                                } else $comment_author_url = ''; 
    498                                                 $comment_content = addslashes($commentinfo[2]); 
    499                                                 $comment_content = str_replace('<br>', '<br />', $comment_content); 
    500                                                 if ( $comment_post_ID == comment_exists($comment_author, $comment_date) ) { 
     507                                                $comment_content = $commentinfo[2]; 
     508                                                $comment_content = str_replace(array('<br>','<BR>','<br/>','<BR/>','<br />','<BR />'), "\n", $comment_content); 
     509                                                $comment_approved = 1; 
     510                                                if ( comment_exists($comment_author, $comment_date) ) { 
    501511                                                        $skippedcommentcount++; 
    502512                                                } else { 
    503                                                         $result = $wpdb->query(" 
    504                                                         INSERT INTO $wpdb->comments  
    505                                                         (comment_post_ID,comment_author,comment_author_url,comment_date,comment_content) 
    506                                                         VALUES  
    507                                                                 ('$comment_post_ID','$comment_author','$comment_author_url','$comment_date','$comment_content') 
    508                                                 "); 
     513                                                        $commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_url', 'comment_date', 'comment_content', 'comment_approved'); 
     514                                                        $commentdata = wp_filter_comment($commentdata); 
     515                                                        if ( false == wp_insert_comment($commentdata) ) $skippedcommentcount++; 
    509516                                                } 
    510517                                                $commentcount++; 
    511518                                        } 
     
    522529                } 
    523530                if ( ! $did_one ) 
    524531                        $this->set_next_step(7); 
    525                 die( $this->refresher(5000) . $output ); 
     532                die( $this->refresher(1000) . $output ); 
    526533        } 
    527534 
    528535        // Step 7: Restore the backed-up settings to Blogger 
     
    568575 
    569576        // Step 8: Republish, all back to normal 
    570577        function republish_blog() { 
    571                 echo $this->refresher(2400) . "<h1>Publishing with original template and options</h1>\n"; 
    572                 $this->publish_blogger(9); 
     578                $this->publish_blogger(9, 'Publishing with original template and options'); 
    573579        } 
    574580 
    575581        // Step 9: Congratulate the user 
     
    581587"; 
    582588                if ( count($this->import['blogs']) > 1 ) 
    583589                        echo "<li>In case you haven't done it already, you can import the posts from any other blogs you may have:" . $this->show_blogs() . "</li>\n"; 
    584                 if ( $n = count($this->import['blogs'][$_GET['blog']]['newusers']) ) 
    585                         echo "<li>Since we had to create $n new users, you probably want to go to <a href='users.php' target='_parent'>Authors & Users</a>, where you can give them new passwords or delete them. If you want to make all of the imported posts yours, you will be given that option when you delete the new authors.</li>\n"; 
     590                if ( $n = $this->import['blogs'][$_GET['blog']]['newusers'] ) 
     591                        echo "<li>Since we had to create $n new user" . ( $n > 1 ? 's' : '' ) . ", you probably want to go to <a href='users.php' target='_parent'>Authors & Users</a>, where you can give them new passwords or delete them. If you want to make all of the imported posts yours, you will be given that option when you delete the new authors.</li>\n"; 
    586592                 
    587593                echo "\n<ul>"; 
    588594        } 
     
    596602                if ( isset($_GET['noheader']) ) { 
    597603                        $this->import = get_settings('import-blogger'); 
    598604 
     605                        ob_start(); 
     606 
    599607                        if ( isset($_GET['step']) ) { 
    600608                                $step = (int) $_GET['step']; 
    601609                        } elseif ( isset($_GET['blog']) ) { 
     
    605613                        } else { 
    606614                                $step = 0; 
    607615                        } 
     616 
    608617                        switch ($step) { 
    609618                                case 0 : 
    610619                                        $this->do_login();