|
|
|
|
@@ -1305,72 +1305,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("<img src=\'../images/error.png\'/> No connection to the database...");');
|
|
|
|
|
$oPage->add_ready_script('$("#db_info").html("<img src=\'../images/error.png\'/> 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(\'<img src="../images/validation_error.png"/> <b>Error:</b> '.htmlentities(implode('<br/>', $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(\'<img src="../images/error.png"/> <b>Warning:</b> '.htmlentities(implode('<br/>', $aWarnings), ENT_QUOTES, 'UTF-8').'\');');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$oPage->add_ready_script('$("#wiz_form").data("db_connection", "");');
|
|
|
|
|
$oPage->add_ready_script('$("#db_info").html(\'<img src="../images/validation_ok.png"/> 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 = '<input id="db_name" name="db_name" size="15" maxlen="32" value="'.htmlentities($sDBName, ENT_QUOTES, 'UTF-8').'"/><span style="width:20px;" id="v_db_name"></span>';
|
|
|
|
|
$oPage->add_ready_script('$("#table_info").html(\'<img src="../images/error.png"/> 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("<img src=\'../images/error.png\'/> No connection to the database...");');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$sDBNameInput = '<select id="db_name" name="db_name">';
|
|
|
|
|
foreach($checks['databases'] as $sDatabaseName)
|
|
|
|
|
$aErrors = array();
|
|
|
|
|
$aWarnings = array();
|
|
|
|
|
foreach ($checks['checks'] as $oCheck)
|
|
|
|
|
{
|
|
|
|
|
if ($sDatabaseName != 'information_schema')
|
|
|
|
|
if ($oCheck->iSeverity == CheckResult::ERROR)
|
|
|
|
|
{
|
|
|
|
|
$sEncodedName = htmlentities($sDatabaseName, ENT_QUOTES, 'UTF-8');
|
|
|
|
|
$sSelected = ($sDatabaseName == $sDBName) ? ' selected ' : '';
|
|
|
|
|
$sDBNameInput .= '<option value="'.$sEncodedName.'" '.$sSelected.'>'.$sEncodedName.'</option>';
|
|
|
|
|
$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(\'<img src="../images/validation_error.png"/> <b>Error:</b> '.htmlentities(implode('<br/>', $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(\'<img src="../images/error.png"/> <b>Warning:</b> '.htmlentities(implode('<br/>', $aWarnings), ENT_QUOTES, 'UTF-8').'\');');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$oPage->add_ready_script('$("#wiz_form").data("db_connection", "");');
|
|
|
|
|
$oPage->add_ready_script('$("#db_info").html(\'<img src="../images/validation_ok.png"/> Database server connection Ok.\');');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$sDBNameInput .= '</select>';
|
|
|
|
|
}
|
|
|
|
|
$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 = '<input id="db_name" name="db_name" size="15" maxlen="32" value="'.htmlentities($sDBName, ENT_QUOTES, 'UTF-8').'"/><span style="width:20px;" id="v_db_name"></span>';
|
|
|
|
|
$oPage->add_ready_script('$("#table_info").html(\'<img src="../images/error.png"/> Not enough rights to enumerate the databases\');');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$sDBNameInput = '<select id="db_name" name="db_name">';
|
|
|
|
|
foreach ($checks['databases'] as $sDatabaseName)
|
|
|
|
|
{
|
|
|
|
|
if ($sDatabaseName != 'information_schema')
|
|
|
|
|
{
|
|
|
|
|
$sEncodedName = htmlentities($sDatabaseName, ENT_QUOTES, 'UTF-8');
|
|
|
|
|
$sSelected = ($sDatabaseName == $sDBName) ? ' selected ' : '';
|
|
|
|
|
$sDBNameInput .= '<option value="'.$sEncodedName.'" '.$sSelected.'>'.$sEncodedName.'</option>';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$sDBNameInput .= '</select>';
|
|
|
|
|
}
|
|
|
|
|
$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();');
|
|
|
|
|
}
|
|
|
|
|
|