]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/setup-config.php
Wordpress 4.5.3-scripts
[autoinstalls/wordpress.git] / wp-admin / setup-config.php
index c6f98f1ffc601e4dc135b14e876fd3f4a2d7f9d6..befa6937edea073f9bcbddd9681a13bc7e605458 100644 (file)
@@ -46,15 +46,26 @@ if ( file_exists( ABSPATH . 'wp-config-sample.php' ) )
 elseif ( file_exists( dirname( ABSPATH ) . '/wp-config-sample.php' ) )
        $config_file = file( dirname( ABSPATH ) . '/wp-config-sample.php' );
 else
 elseif ( file_exists( dirname( ABSPATH ) . '/wp-config-sample.php' ) )
        $config_file = file( dirname( ABSPATH ) . '/wp-config-sample.php' );
 else
-       wp_die( __( 'Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file from your WordPress installation.' ) );
+       wp_die( __( 'Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file to your WordPress installation.' ) );
 
 // Check if wp-config.php has been created
 if ( file_exists( ABSPATH . 'wp-config.php' ) )
 
 // Check if wp-config.php has been created
 if ( file_exists( ABSPATH . 'wp-config.php' ) )
-       wp_die( '<p>' . sprintf( __( "The file 'wp-config.php' already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='%s'>installing now</a>." ), 'install.php' ) . '</p>' );
+       wp_die( '<p>' . sprintf(
+                       /* translators: %s: install.php */
+                       __( "The file 'wp-config.php' already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='%s'>installing now</a>." ),
+                       'install.php'
+               ) . '</p>'
+       );
 
 // Check if wp-config.php exists above the root directory but is not part of another install
 
 // Check if wp-config.php exists above the root directory but is not part of another install
-if ( file_exists(ABSPATH . '../wp-config.php' ) && ! file_exists( ABSPATH . '../wp-settings.php' ) )
-       wp_die( '<p>' . sprintf( __( "The file 'wp-config.php' already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='install.php'>installing now</a>."), 'install.php' ) . '</p>' );
+if ( @file_exists( ABSPATH . '../wp-config.php' ) && ! @file_exists( ABSPATH . '../wp-settings.php' ) ) {
+       wp_die( '<p>' . sprintf(
+                       /* translators: %s: install.php */
+                       __( "The file 'wp-config.php' already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='%s'>installing now</a>." ),
+                       'install.php'
+               ) . '</p>'
+       );
+}
 
 $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : -1;
 
 
 $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : -1;
 
@@ -63,9 +74,13 @@ $step = isset( $_GET['step'] ) ? (int) $_GET['step'] : -1;
  *
  * @ignore
  * @since 2.3.0
  *
  * @ignore
  * @since 2.3.0
+ *
+ * @global string    $wp_local_package
+ * @global WP_Locale $wp_locale
+ *
+ * @param string|array $body_classes
  */
 function setup_config_display_header( $body_classes = array() ) {
  */
 function setup_config_display_header( $body_classes = array() ) {
-       global $wp_version;
        $body_classes = (array) $body_classes;
        $body_classes[] = 'wp-core-ui';
        if ( is_rtl() ) {
        $body_classes = (array) $body_classes;
        $body_classes[] = 'wp-core-ui';
        if ( is_rtl() ) {
@@ -79,11 +94,12 @@ function setup_config_display_header( $body_classes = array() ) {
 <head>
        <meta name="viewport" content="width=device-width" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <head>
        <meta name="viewport" content="width=device-width" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+       <meta name="robots" content="noindex,nofollow" />
        <title><?php _e( 'WordPress &rsaquo; Setup Configuration File' ); ?></title>
        <?php wp_admin_css( 'install', true ); ?>
 </head>
 <body class="<?php echo implode( ' ', $body_classes ); ?>">
        <title><?php _e( 'WordPress &rsaquo; Setup Configuration File' ); ?></title>
        <?php wp_admin_css( 'install', true ); ?>
 </head>
 <body class="<?php echo implode( ' ', $body_classes ); ?>">
-<h1 id="logo"><a href="<?php esc_attr_e( 'https://wordpress.org/' ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></h1>
+<p id="logo"><a href="<?php esc_attr_e( 'https://wordpress.org/' ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></p>
 <?php
 } // end function setup_config_display_header();
 
 <?php
 } // end function setup_config_display_header();
 
@@ -98,6 +114,7 @@ switch($step) {
        case -1:
                if ( wp_can_install_language_pack() && empty( $language ) && ( $languages = wp_get_available_translations() ) ) {
                        setup_config_display_header( 'language-chooser' );
        case -1:
                if ( wp_can_install_language_pack() && empty( $language ) && ( $languages = wp_get_available_translations() ) ) {
                        setup_config_display_header( 'language-chooser' );
+                       echo '<h1 class="screen-reader-text">Select a default language</h1>';
                        echo '<form id="setup" method="post" action="?step=0">';
                        wp_install_language_form( $languages );
                        echo '</form>';
                        echo '<form id="setup" method="post" action="?step=0">';
                        wp_install_language_form( $languages );
                        echo '</form>';
@@ -124,7 +141,7 @@ switch($step) {
                        $step_1 .= '&amp;language=' . $loaded_language;
                }
 ?>
                        $step_1 .= '&amp;language=' . $loaded_language;
                }
 ?>
-
+<h1 class="screen-reader-text"><?php _e( 'Before getting started' ) ?></h1>
 <p><?php _e( 'Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.' ) ?></p>
 <ol>
        <li><?php _e( 'Database name' ); ?></li>
 <p><?php _e( 'Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.' ) ?></p>
 <ol>
        <li><?php _e( 'Database name' ); ?></li>
@@ -133,12 +150,26 @@ switch($step) {
        <li><?php _e( 'Database host' ); ?></li>
        <li><?php _e( 'Table prefix (if you want to run more than one WordPress in a single database)' ); ?></li>
 </ol>
        <li><?php _e( 'Database host' ); ?></li>
        <li><?php _e( 'Table prefix (if you want to run more than one WordPress in a single database)' ); ?></li>
 </ol>
-<p>
-       <?php _e( 'We&#8217;re going to use this information to create a <code>wp-config.php</code> file.' ); ?>
-       <strong><?php _e( "If for any reason this automatic file creation doesn&#8217;t work, don&#8217;t worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <code>wp-config.php</code>." ); ?></strong>
-       <?php _e( "Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>." ); ?>
-</p>
-<p><?php _e( "In all likelihood, these items were supplied to you by your Web Host. If you do not have this information, then you will need to contact them before you can continue. If you&#8217;re all ready&hellip;" ); ?></p>
+<p><?php
+       /* translators: %s: wp-config.php */
+       printf( __( 'We&#8217;re going to use this information to create a %s file.' ),
+               '<code>wp-config.php</code>'
+       );
+       ?>
+       <strong><?php
+               /* translators: 1: wp-config-sample.php, 2: wp-config.php */
+               printf( __( 'If for any reason this automatic file creation doesn&#8217;t work, don&#8217;t worry. All this does is fill in the database information to a configuration file. You may also simply open %1$s in a text editor, fill in your information, and save it as %2$s.' ),
+                       '<code>wp-config-sample.php</code>',
+                       '<code>wp-config.php</code>'
+               );
+       ?></strong>
+       <?php
+       /* translators: %s: Codex URL */
+       printf( __( 'Need more help? <a href="%s">We got it</a>.' ),
+               __( 'https://codex.wordpress.org/Editing_wp-config.php' )
+       );
+?></p>
+<p><?php _e( 'In all likelihood, these items were supplied to you by your Web Host. If you don&#8217;t have this information, then you will need to contact them before you can continue. If you&#8217;re all ready&hellip;' ); ?></p>
 
 <p class="step"><a href="<?php echo $step_1; ?>" class="button button-large"><?php _e( 'Let&#8217;s go!' ); ?></a></p>
 <?php
 
 <p class="step"><a href="<?php echo $step_1; ?>" class="button button-large"><?php _e( 'Let&#8217;s go!' ); ?></a></p>
 <?php
@@ -150,28 +181,32 @@ switch($step) {
 
                setup_config_display_header();
        ?>
 
                setup_config_display_header();
        ?>
+<h1 class="screen-reader-text"><?php _e( 'Set up your database connection' ) ?></h1>
 <form method="post" action="setup-config.php?step=2">
 <form method="post" action="setup-config.php?step=2">
-       <p><?php _e( "Below you should enter your database connection details. If you&#8217;re not sure about these, contact your host." ); ?></p>
+       <p><?php _e( 'Below you should enter your database connection details. If you&#8217;re not sure about these, contact your host.' ); ?></p>
        <table class="form-table">
                <tr>
                        <th scope="row"><label for="dbname"><?php _e( 'Database Name' ); ?></label></th>
                        <td><input name="dbname" id="dbname" type="text" size="25" value="wordpress" /></td>
        <table class="form-table">
                <tr>
                        <th scope="row"><label for="dbname"><?php _e( 'Database Name' ); ?></label></th>
                        <td><input name="dbname" id="dbname" type="text" size="25" value="wordpress" /></td>
-                       <td><?php _e( 'The name of the database you want to run WP in.' ); ?></td>
+                       <td><?php _e( 'The name of the database you want to use with WordPress.' ); ?></td>
                </tr>
                <tr>
                </tr>
                <tr>
-                       <th scope="row"><label for="uname"><?php _e( 'User Name' ); ?></label></th>
+                       <th scope="row"><label for="uname"><?php _e( 'Username' ); ?></label></th>
                        <td><input name="uname" id="uname" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'username', 'example username' ), ENT_QUOTES ); ?>" /></td>
                        <td><input name="uname" id="uname" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'username', 'example username' ), ENT_QUOTES ); ?>" /></td>
-                       <td><?php _e( 'Your MySQL username' ); ?></td>
+                       <td><?php _e( 'Your database username.' ); ?></td>
                </tr>
                <tr>
                        <th scope="row"><label for="pwd"><?php _e( 'Password' ); ?></label></th>
                        <td><input name="pwd" id="pwd" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'password', 'example password' ), ENT_QUOTES ); ?>" autocomplete="off" /></td>
                </tr>
                <tr>
                        <th scope="row"><label for="pwd"><?php _e( 'Password' ); ?></label></th>
                        <td><input name="pwd" id="pwd" type="text" size="25" value="<?php echo htmlspecialchars( _x( 'password', 'example password' ), ENT_QUOTES ); ?>" autocomplete="off" /></td>
-                       <td><?php _e( '&hellip;and your MySQL password.' ); ?></td>
+                       <td><?php _e( 'Your database password.' ); ?></td>
                </tr>
                <tr>
                        <th scope="row"><label for="dbhost"><?php _e( 'Database Host' ); ?></label></th>
                        <td><input name="dbhost" id="dbhost" type="text" size="25" value="localhost" /></td>
                </tr>
                <tr>
                        <th scope="row"><label for="dbhost"><?php _e( 'Database Host' ); ?></label></th>
                        <td><input name="dbhost" id="dbhost" type="text" size="25" value="localhost" /></td>
-                       <td><?php _e( 'You should be able to get this info from your web host, if <code>localhost</code> does not work.' ); ?></td>
+                       <td><?php
+                               /* translators: %s: localhost */
+                               printf( __( 'You should be able to get this info from your web host, if %s doesn&#8217;t work.' ),'<code>localhost</code>' );
+                       ?></td>
                </tr>
                <tr>
                        <th scope="row"><label for="prefix"><?php _e( 'Table Prefix' ); ?></label></th>
                </tr>
                <tr>
                        <th scope="row"><label for="prefix"><?php _e( 'Table Prefix' ); ?></label></th>
@@ -241,21 +276,34 @@ switch($step) {
        if ( ! empty( $wpdb->error ) )
                wp_die( $wpdb->error->get_error_message() . $tryagain_link );
 
        if ( ! empty( $wpdb->error ) )
                wp_die( $wpdb->error->get_error_message() . $tryagain_link );
 
-       // Fetch or generate keys and salts.
-       $no_api = isset( $_POST['noapi'] );
-       if ( ! $no_api ) {
-               $secret_keys = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' );
-       }
-
-       if ( $no_api || is_wp_error( $secret_keys ) ) {
-               $secret_keys = array();
+       // Generate keys and salts using secure CSPRNG; fallback to API if enabled; further fallback to original wp_generate_password().
+       try {
+               $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
+               $max = strlen($chars) - 1;
                for ( $i = 0; $i < 8; $i++ ) {
                for ( $i = 0; $i < 8; $i++ ) {
-                       $secret_keys[] = wp_generate_password( 64, true, true );
+                       $key = '';
+                       for ( $j = 0; $j < 64; $j++ ) {
+                               $key .= substr( $chars, random_int( 0, $max ), 1 );
+                       }
+                       $secret_keys[] = $key;
                }
                }
-       } else {
-               $secret_keys = explode( "\n", wp_remote_retrieve_body( $secret_keys ) );
-               foreach ( $secret_keys as $k => $v ) {
-                       $secret_keys[$k] = substr( $v, 28, 64 );
+       } catch ( Exception $ex ) {
+               $no_api = isset( $_POST['noapi'] );
+
+               if ( ! $no_api ) {
+                       $secret_keys = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' );
+               }
+
+               if ( $no_api || is_wp_error( $secret_keys ) ) {
+                       $secret_keys = array();
+                       for ( $i = 0; $i < 8; $i++ ) {
+                               $secret_keys[] = wp_generate_password( 64, true, true );
+                       }
+               } else {
+                       $secret_keys = explode( "\n", wp_remote_retrieve_body( $secret_keys ) );
+                       foreach ( $secret_keys as $k => $v ) {
+                               $secret_keys[$k] = substr( $v, 28, 64 );
+                       }
                }
        }
 
                }
        }
 
@@ -280,6 +328,11 @@ switch($step) {
                        case 'DB_HOST'     :
                                $config_file[ $line_num ] = "define('" . $constant . "'," . $padding . "'" . addcslashes( constant( $constant ), "\\'" ) . "');\r\n";
                                break;
                        case 'DB_HOST'     :
                                $config_file[ $line_num ] = "define('" . $constant . "'," . $padding . "'" . addcslashes( constant( $constant ), "\\'" ) . "');\r\n";
                                break;
+                       case 'DB_CHARSET'  :
+                               if ( 'utf8mb4' === $wpdb->charset || ( ! $wpdb->charset && $wpdb->has_cap( 'utf8mb4' ) ) ) {
+                                       $config_file[ $line_num ] = "define('" . $constant . "'," . $padding . "'utf8mb4');\r\n";
+                               }
+                               break;
                        case 'AUTH_KEY'         :
                        case 'SECURE_AUTH_KEY'  :
                        case 'LOGGED_IN_KEY'    :
                        case 'AUTH_KEY'         :
                        case 'SECURE_AUTH_KEY'  :
                        case 'LOGGED_IN_KEY'    :
@@ -297,10 +350,16 @@ switch($step) {
        if ( ! is_writable(ABSPATH) ) :
                setup_config_display_header();
 ?>
        if ( ! is_writable(ABSPATH) ) :
                setup_config_display_header();
 ?>
-<p><?php _e( "Sorry, but I can&#8217;t write the <code>wp-config.php</code> file." ); ?></p>
-<p><?php _e( 'You can create the <code>wp-config.php</code> manually and paste the following text into it.' ); ?></p>
+<p><?php
+       /* translators: %s: wp-config.php */
+       printf( __( 'Sorry, but I can&#8217;t write the %s file.' ), '<code>wp-config.php</code>' );
+?></p>
+<p><?php
+       /* translators: %s: wp-config.php */
+       printf( __( 'You can create the %s manually and paste the following text into it.' ), '<code>wp-config.php</code>' );
+?></p>
 <textarea id="wp-config" cols="98" rows="15" class="code" readonly="readonly"><?php
 <textarea id="wp-config" cols="98" rows="15" class="code" readonly="readonly"><?php
-               foreach( $config_file as $line ) {
+               foreach ( $config_file as $line ) {
                        echo htmlentities($line, ENT_COMPAT, 'UTF-8');
                }
 ?></textarea>
                        echo htmlentities($line, ENT_COMPAT, 'UTF-8');
                }
 ?></textarea>
@@ -308,9 +367,11 @@ switch($step) {
 <p class="step"><a href="<?php echo $install; ?>" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
 <script>
 (function(){
 <p class="step"><a href="<?php echo $install; ?>" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
 <script>
 (function(){
-var el=document.getElementById('wp-config');
-el.focus();
-el.select();
+if ( ! /iPad|iPod|iPhone/.test( navigator.userAgent ) ) {
+       var el = document.getElementById('wp-config');
+       el.focus();
+       el.select();
+}
 })();
 </script>
 <?php
 })();
 </script>
 <?php
@@ -325,14 +386,15 @@ el.select();
                        $path_to_wp_config = dirname( ABSPATH ) . '/wp-config.php';
 
                $handle = fopen( $path_to_wp_config, 'w' );
                        $path_to_wp_config = dirname( ABSPATH ) . '/wp-config.php';
 
                $handle = fopen( $path_to_wp_config, 'w' );
-               foreach( $config_file as $line ) {
+               foreach ( $config_file as $line ) {
                        fwrite( $handle, $line );
                }
                fclose( $handle );
                chmod( $path_to_wp_config, 0666 );
                setup_config_display_header();
 ?>
                        fwrite( $handle, $line );
                }
                fclose( $handle );
                chmod( $path_to_wp_config, 0666 );
                setup_config_display_header();
 ?>
-<p><?php _e( "All right, sparky! You&#8217;ve made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to&hellip;" ); ?></p>
+<h1 class="screen-reader-text"><?php _e( 'Successful database connection' ) ?></h1>
+<p><?php _e( 'All right, sparky! You&#8217;ve made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to&hellip;' ); ?></p>
 
 <p class="step"><a href="<?php echo $install; ?>" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
 <?php
 
 <p class="step"><a href="<?php echo $install; ?>" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
 <?php