WordPress.org

Make WordPress Core

Ticket #13839: 13839.3.diff

File 13839.3.diff, 2.6 KB (added by SergeyBiryukov, 7 years ago)
  • wp-admin/setup-config.php

     
    150150        break;
    151151
    152152        case 2:
    153         $dbname  = trim($_POST['dbname']);
    154         $uname   = trim($_POST['uname']);
    155         $passwrd = trim($_POST['pwd']);
     153        $dbname  = trim( stripslashes($_POST['dbname']) );
     154        $uname   = trim( stripslashes($_POST['uname']) );
     155        $passwrd = trim( stripslashes($_POST['pwd']) );
    156156        $dbhost  = trim($_POST['dbhost']);
    157157        $prefix  = trim($_POST['prefix']);
     158
     159        $tryagain_link = '</p><p class="step"><a href="setup-config.php?step=1" onclick="javascript:history.go(-1);return false;" class="button">' . /*WP_I18N_ERROR_TRYAGAIN*/'Try Again'/*/WP_I18N_ERROR_TRYAGAIN*/ . '</a>';
     160
     161        // Validate $prefix: it can only contain letters, numbers and underscores
    158162        if ( empty($prefix) )
    159                 $prefix = 'wp_';
     163                wp_die( /*WP_I18N_EMPTY_PREFIX*/'<strong>ERROR</strong>: "Table Prefix" must not be empty.'/*/WP_I18N_EMPTY_PREFIX*/ . $tryagain_link );
    160164
    161         // Validate $prefix: it can only contain letters, numbers and underscores
    162165        if ( preg_match( '|[^a-z0-9_]|i', $prefix ) )
    163                 wp_die( /*WP_I18N_BAD_PREFIX*/'<strong>ERROR</strong>: "Table Prefix" can only contain numbers, letters, and underscores.'/*/WP_I18N_BAD_PREFIX*/ );
     166                wp_die( /*WP_I18N_BAD_PREFIX*/'<strong>ERROR</strong>: "Table Prefix" can only contain numbers, letters, and underscores.'/*/WP_I18N_BAD_PREFIX*/ . $tryagain_link );
    164167
    165168        // Test the db connection.
    166169        /**#@+
     
    174177
    175178        // We'll fail here if the values are no good.
    176179        require_wp_db();
    177         if ( ! empty( $wpdb->error ) ) {
    178                 $back = '<p class="step"><a href="setup-config.php?step=1" onclick="javascript:history.go(-1);return false;" class="button">Try Again</a></p>';
    179                 wp_die( $wpdb->error->get_error_message() . $back );
    180         }
     180        if ( ! empty( $wpdb->error ) )
     181                wp_die( $wpdb->error->get_error_message() . $tryagain_link );
    181182
    182183        // Fetch or generate keys and salts.
    183184        $no_api = isset( $_POST['noapi'] );
     
    215216        foreach ($configFile as $line_num => $line) {
    216217                switch (substr($line,0,16)) {
    217218                        case "define('DB_NAME'":
     219                                $dbname = addcslashes($dbname, "\\'");
    218220                                $configFile[$line_num] = str_replace("database_name_here", $dbname, $line);
    219221                                break;
    220222                        case "define('DB_USER'":
     223                                $uname = addcslashes($uname, "\\'");
    221224                                $configFile[$line_num] = str_replace("'username_here'", "'$uname'", $line);
    222225                                break;
    223226                        case "define('DB_PASSW":
     227                                $passwrd = addcslashes($passwrd, "\\'");
    224228                                $configFile[$line_num] = str_replace("'password_here'", "'$passwrd'", $line);
    225229                                break;
    226230                        case "define('DB_HOST'":