diff --git a/setup/setuputils.class.inc.php b/setup/setuputils.class.inc.php index bb8e9ba12..bf019d1da 100644 --- a/setup/setuputils.class.inc.php +++ b/setup/setuputils.class.inc.php @@ -1302,72 +1302,89 @@ EOF $sDBUser = $aParameters['db_user']; $sDBPwd = $aParameters['db_pwd']; $sDBName = $aParameters['db_name']; - $sTlsEnabled = (isset($aParameters['db_tls_enabled'])) ? $aParameters['db_tls_enabled'] : null; - $sTlsCA = (isset($aParameters['db_tls_ca'])) ? $aParameters['db_tls_ca'] : null; - $oPage->add_ready_script('oXHRCheckDB = null;'); - - $checks = SetupUtils::CheckDbServer($sDBServer, $sDBUser, $sDBPwd, $sTlsEnabled, $sTlsCA); - - if ($checks === false) + $bIsWindows = (array_key_exists('WINDIR', $_SERVER) || array_key_exists('windir', $_SERVER)); + if ($bIsWindows && (strpos($sDBPwd, '%') !== false)) { - // Connection failed, disable the "Next" button + // Unsuported Password, disable the "Next" button $oPage->add_ready_script('$("#wiz_form").data("db_connection", "error");'); - $oPage->add_ready_script('$("#db_info").html(" No connection to the database...");'); + $oPage->add_ready_script('$("#db_info").html(" Database password cannot contain % character...");'); } else { - $aErrors = array(); - $aWarnings = array(); - foreach($checks['checks'] as $oCheck) - { - if ($oCheck->iSeverity == CheckResult::ERROR) - { - $aErrors[] = $oCheck->sLabel; - } - else if ($oCheck->iSeverity == CheckResult::WARNING) - { - $aWarnings[] = $oCheck->sLabel; - } - } - if (count($aErrors) > 0) - { - $oPage->add_ready_script('$("#wiz_form").data("db_connection", "error");'); - $oPage->add_ready_script('$("#db_info").html(\' Error: '.htmlentities(implode('
', $aErrors), ENT_QUOTES, 'UTF-8').'\');'); - } - else if (count($aWarnings) > 0) - { - $oPage->add_ready_script('$("#wiz_form").data("db_connection", "");'); - $oPage->add_ready_script('$("#db_info").html(\' Warning: '.htmlentities(implode('
', $aWarnings), ENT_QUOTES, 'UTF-8').'\');'); - } - else - { - $oPage->add_ready_script('$("#wiz_form").data("db_connection", "");'); - $oPage->add_ready_script('$("#db_info").html(\' Database server connection Ok.\');'); - } + $sTlsEnabled = (isset($aParameters['db_tls_enabled'])) ? $aParameters['db_tls_enabled'] : null; + $sTlsCA = (isset($aParameters['db_tls_ca'])) ? $aParameters['db_tls_ca'] : null; - if ($checks['databases'] == null) + $oPage->add_ready_script('oXHRCheckDB = null;'); + + $checks = SetupUtils::CheckDbServer($sDBServer, $sDBUser, $sDBPwd, $sTlsEnabled, $sTlsCA); + + if ($checks === false) { - $sDBNameInput = ''; - $oPage->add_ready_script('$("#table_info").html(\' Not enough rights to enumerate the databases\');'); + // Connection failed, disable the "Next" button + $oPage->add_ready_script('$("#wiz_form").data("db_connection", "error");'); + $oPage->add_ready_script('$("#db_info").html(" No connection to the database...");'); } else { - $sDBNameInput = ''; - } - $oPage->add_ready_script('$("#db_name_container").html("'.addslashes($sDBNameInput).'");'); - $oPage->add_ready_script('$("#db_name").bind("click keyup change", function() { $("#existing_db").prop("checked", true); WizardUpdateButtons(); });'); + if ($checks['databases'] == null) + { + $sDBNameInput = ''; + $oPage->add_ready_script('$("#table_info").html(\' Not enough rights to enumerate the databases\');'); + } + else + { + $sDBNameInput = ''; + } + $oPage->add_ready_script('$("#db_name_container").html("'.addslashes($sDBNameInput).'");'); + $oPage->add_ready_script('$("#db_name").bind("click keyup change", function() { $("#existing_db").prop("checked", true); WizardUpdateButtons(); });'); + + } } $oPage->add_ready_script('WizardUpdateButtons();'); }