protected function validateDatabaseVars($submissionVars, $formVars)
{
foreach ($formVars as $field => $info) {
if ($info['required'] == TRUE && !$submissionVars[$field]) {
$name = _elgg_services()->translator->translate("install:database:label:{$field}");
register_error(_elgg_services()->translator->translate('install:error:requiredfield', array($name)));
return FALSE;
}
}
// according to postgres documentation: SQL identifiers and key words must
// begin with a letter (a-z, but also letters with diacritical marks and
// non-Latin letters) or an underscore (_). Subsequent characters in an
// identifier or key word can be letters, underscores, digits (0-9), or dollar signs ($).
// Refs #4994
if (!preg_match("/^[a-zA-Z_][\\w]*\$/", $submissionVars['dbprefix'])) {
register_error(_elgg_services()->translator->translate('install:error:database_prefix'));
return FALSE;
}
return $this->checkDatabaseSettings($submissionVars['dbuser'], $submissionVars['dbpassword'], $submissionVars['dbname'], $submissionVars['dbhost']);
}