Skip to content

Commit 6ae1c77

Browse files
committed
Fixed: FS#847 - Database management issues.
1 parent af756a1 commit 6ae1c77

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

interface/web/sites/database_edit.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,9 @@ function onBeforeUpdate() {
255255
}
256256
}
257257
unset($old_record);
258+
259+
if(strlen($dbname_prefix . $this->dataRecord['database_name']) > 64) $app->tform->errorMessage .= str_replace('{db}',$dbname_prefix . $this->dataRecord['database_name'],$app->tform->wordbook["database_name_error_len"]).'<br />';
260+
if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}',$dbuser_prefix . $this->dataRecord['database_user'],$app->tform->wordbook["database_user_error_len"]).'<br />';
258261

259262
if ($app->tform->errorMessage == ''){
260263
/* restrict the names if there is no error */
@@ -278,11 +281,17 @@ function onBeforeInsert() {
278281
$global_config = $app->getconf->get_global_config('sites');
279282
$dbname_prefix = replacePrefix($global_config['dbname_prefix'], $this->dataRecord);
280283
$dbuser_prefix = replacePrefix($global_config['dbuser_prefix'], $this->dataRecord);
284+
285+
if(strlen($dbname_prefix . $this->dataRecord['database_name']) > 64) $app->tform->errorMessage .= str_replace('{db}',$dbname_prefix . $this->dataRecord['database_name'],$app->tform->wordbook["database_name_error_len"]).'<br />';
286+
if(strlen($dbuser_prefix . $this->dataRecord['database_user']) > 16) $app->tform->errorMessage .= str_replace('{user}',$dbuser_prefix . $this->dataRecord['database_user'],$app->tform->wordbook["database_user_error_len"]).'<br />';
287+
281288

282289
/* restrict the names */
283290
/* crop user and db names if they are too long -> mysql: user: 16 chars / db: 64 chars */
284-
$this->dataRecord['database_name'] = substr($dbname_prefix . $this->dataRecord['database_name'], 0, 64);
285-
$this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16);
291+
if ($app->tform->errorMessage == ''){
292+
$this->dataRecord['database_name'] = substr($dbname_prefix . $this->dataRecord['database_name'], 0, 64);
293+
$this->dataRecord['database_user'] = substr($dbuser_prefix . $this->dataRecord['database_user'], 0, 16);
294+
}
286295

287296
parent::onBeforeInsert();
288297
}

interface/web/sites/lib/lang/en_database.lng

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,6 @@ $wb["database_user_error_regex"] = 'Invalid database user name. The username may
2020
$wb["limit_database_txt"] = 'The max. number of databases is reached.';
2121
$wb["database_name_change_txt"] = 'The database name can not be changed';
2222
$wb["database_charset_change_txt"] = 'The database charset can not be changed';
23+
$wb["database_name_error_len"] = 'Database name - {db} - too long. The max. database name length incl. prefix is 64 chars.';
24+
$wb["database_user_error_len"] = 'Database username - {user}- too long. The max. database username length incl. prefix is 16 chars.';
2325
?>

0 commit comments

Comments
 (0)