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();');
}