Beispiel #1
0
      * Write conf file:
      * -----------------------------------------------------------------------------------
      */
     display_locale_selector();
     param('conf_db_user', 'string', true);
     param('conf_db_password', 'raw', true);
     param('conf_db_name', 'string', true);
     param('conf_db_host', 'string', true);
     param('conf_db_tableprefix', 'string', $tableprefix);
     param('conf_baseurl', 'string', true);
     $conf_baseurl = preg_replace('#(/)?$#', '', $conf_baseurl) . '/';
     // force trailing slash
     param('conf_admin_email', 'string', true);
     // Try to create/update basic config file:
     $basic_config_params = array('db_user' => $conf_db_user, 'db_password' => $conf_db_password, 'db_name' => $conf_db_name, 'db_host' => $conf_db_host, 'db_tableprefix' => $conf_db_tableprefix, 'baseurl' => $conf_baseurl, 'admin_email' => $conf_admin_email);
     if (!update_basic_config_file($basic_config_params)) {
         // Break here if some error on creating/updating basic config file
         break;
     }
     // ATTENTION: we continue here...
 // ATTENTION: we continue here...
 case 'start':
 case 'default':
     /*
      * -----------------------------------------------------------------------------------
      * Start of install procedure:
      * -----------------------------------------------------------------------------------
      */
     if (!$install_memory_limit_allow) {
         // Don't allow any action when minimum memory limit is not enough for using:
         // Display only a locale selector:
/**
 * Check request for quick installation
 * Update basic config file from url params
 *
 * @return boolean|string TRUE on success, OR error messages
 */
function check_quick_install_request()
{
    global $config_is_done, $db_config, $install_login, $install_password, $Messages;
    $admin_login = param('admin_login', 'string', '');
    $admin_password = param('admin_password', 'string', '');
    if (!empty($admin_login)) {
        // Try to use an admin login from request:
        if (param_check_valid_login('admin_login')) {
            // We can use this login name
            $install_login = $admin_login;
        } else {
            // Display an error message for impossible login name:
            $Messages->add(sprintf('ERROR: Impossible to use "%s" for the admin account. Using "admin" instead.', $admin_login));
        }
    }
    if (!empty($admin_password) && param_check_passwords('admin_password', 'admin_password', false, 5)) {
        // Set admin password from request:
        $install_password = $admin_password;
    }
    if ($config_is_done) {
        // Config is already done, Don't use url params to update basic config file
        return true;
    }
    // DB Access:
    $db_user = param('db_user', 'string', '');
    $db_password = param('db_password', 'raw', '');
    $db_name = param('db_name', 'string', '');
    $db_host = param('db_host', 'string', '');
    $db_tableprefix = param('db_tableprefix', 'string', '');
    // Admin e-mail:
    global $admin_email;
    $default_admin_email = $admin_email;
    $conf_admin_email = param('admin_email', 'string', '', false, true);
    if (!empty($conf_admin_email) || !empty($db_user) || !empty($db_password) || !empty($db_name) || !empty($db_host) || !empty($db_tableprefix)) {
        // Try to update basic config file ONLY when at least one of these params are defined
        if (empty($conf_admin_email) || !param_check_email('admin_email')) {
            // Use default admin email if it is empty from request
            $conf_admin_email = $default_admin_email;
        }
        // Base URL:
        global $baseurl, $admin_url, $dispatcher, $tableprefix;
        $baseurl = param('baseurl', 'string', '', false, true);
        if (empty($baseurl) || !preg_match('~https?://~', $baseurl)) {
            // Try to autogenerate base url if it is empty or wrong from request:
            $baseurl = 'http://' . (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'yourserver.com');
            if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] != '80') {
                $baseurl .= ':' . $_SERVER['SERVER_PORT'];
            }
            list($ReqPath, $ReqURI) = get_ReqURI();
            $baseurl .= preg_replace('#/install(/(index.php)?)?$#', '', $ReqPath) . '/';
        }
        // Add a slash at the end if it is missed:
        $baseurl = trim($baseurl, '/') . '/';
        // Update $admin_url to new value because it depends on $baseurl:
        $admin_url = $baseurl . $dispatcher;
        // Update $tableprefix to new from request:
        $tableprefix = $db_tableprefix;
        // Try to create basic config file:
        $basic_config_params = array('db_user' => $db_user, 'db_password' => $db_password, 'db_name' => $db_name, 'db_host' => $db_host, 'db_tableprefix' => $db_tableprefix, 'baseurl' => $baseurl, 'admin_email' => $conf_admin_email, 'print_messages' => false, 'quick_install' => true);
        if (update_basic_config_file($basic_config_params)) {
            // Basic config file has been created successfully
            // Update DB config to connect to DB correctly
            $db_config['user'] = $db_user;
            $db_config['password'] = $db_password;
            $db_config['name'] = $db_name;
            $db_config['host'] = $db_host;
        } else {
            // Failed on createing of basic config file
            return false;
        }
    }
    // Revert config admin email to original value:
    $admin_email = $default_admin_email;
    return true;
}