|
|
|
@ -184,13 +184,13 @@ class OC_CONFIG{
|
|
|
|
|
//create/fill database
|
|
|
|
|
$CONFIG_DBTYPE=$dbtype;
|
|
|
|
|
$CONFIG_DBNAME=$_POST['dbname'];
|
|
|
|
|
if($dbtype=='mysql'){
|
|
|
|
|
if($dbtype!='sqlite'){
|
|
|
|
|
$CONFIG_DBHOST=$_POST['dbhost'];
|
|
|
|
|
$CONFIG_DBUSER=$_POST['dbuser'];
|
|
|
|
|
$CONFIG_DBPASSWORD=$_POST['dbpassword'];
|
|
|
|
|
}
|
|
|
|
|
try{
|
|
|
|
|
if(isset($_POST['createdatabase']) and $CONFIG_DBTYPE=='mysql'){
|
|
|
|
|
if(isset($_POST['createdatabase']) and $CONFIG_DBTYPE!='sqlite'){
|
|
|
|
|
self::createdatabase($_POST['dbadminuser'],$_POST['dbadminpwd']);
|
|
|
|
|
}
|
|
|
|
|
}catch(Exception $e){
|
|
|
|
@ -241,7 +241,7 @@ class OC_CONFIG{
|
|
|
|
|
$config.='$CONFIG_DATEFORMAT=\''.$_POST['dateformat']."';\n";
|
|
|
|
|
$config.='$CONFIG_DBTYPE=\''.$dbtype."';\n";
|
|
|
|
|
$config.='$CONFIG_DBNAME=\''.$_POST['dbname']."';\n";
|
|
|
|
|
if($dbtype=='mysql'){
|
|
|
|
|
if($dbtype!='sqlite'){
|
|
|
|
|
$config.='$CONFIG_DBHOST=\''.$_POST['dbhost']."';\n";
|
|
|
|
|
$config.='$CONFIG_DBUSER=\''.$_POST['dbuser']."';\n";
|
|
|
|
|
$config.='$CONFIG_DBPASSWORD=\''.$_POST['dbpassword']."';\n";
|
|
|
|
@ -290,34 +290,49 @@ class OC_CONFIG{
|
|
|
|
|
global $CONFIG_DBNAME;
|
|
|
|
|
global $CONFIG_DBUSER;
|
|
|
|
|
global $CONFIG_DBPWD;
|
|
|
|
|
global $CONFIG_DBTYPE;
|
|
|
|
|
//we cant user OC_BD functions here because we need to connect as the administrative user.
|
|
|
|
|
$connection = @new mysqli($CONFIG_DBHOST, $adminUser, $adminPwd);
|
|
|
|
|
if (mysqli_connect_errno()) {
|
|
|
|
|
@ob_end_clean();
|
|
|
|
|
echo('<html><head></head><body bgcolor="#F0F0F0"><br /><br /><center><b>can not connect to database as administrative user.</center></body></html>');
|
|
|
|
|
exit();
|
|
|
|
|
}
|
|
|
|
|
$query="SELECT user FROM mysql.user WHERE user='{$_POST['dbuser']}';";
|
|
|
|
|
$result = @$connection->query($query);
|
|
|
|
|
if (!$result) {
|
|
|
|
|
$entry='DB Error: "'.$connection->error.'"<br />';
|
|
|
|
|
$entry.='Offending command was: '.$query.'<br />';
|
|
|
|
|
echo($entry);
|
|
|
|
|
}
|
|
|
|
|
if($result->num_rows==0){
|
|
|
|
|
$query="CREATE USER '{$_POST['dbuser']}' IDENTIFIED BY '{$_POST['dbpassword']}';";
|
|
|
|
|
}else{
|
|
|
|
|
$query='';
|
|
|
|
|
}
|
|
|
|
|
$query.="CREATE DATABASE IF NOT EXISTS `{$_POST['dbname']}`;
|
|
|
|
|
GRANT ALL PRIVILEGES ON `{$_POST['dbname']}` . * TO '{$_POST['dbuser']}';";
|
|
|
|
|
$result = @$connection->multi_query($query);
|
|
|
|
|
if (!$result) {
|
|
|
|
|
$entry='DB Error: "'.$connection->error.'"<br />';
|
|
|
|
|
$entry.='Offending command was: '.$query.'<br />';
|
|
|
|
|
echo($entry);
|
|
|
|
|
if($CONFIG_DBTYPE=='mysql'){
|
|
|
|
|
$connection = @new mysqli($CONFIG_DBHOST, $adminUser, $adminPwd);
|
|
|
|
|
if (mysqli_connect_errno()) {
|
|
|
|
|
@ob_end_clean();
|
|
|
|
|
echo('<html><head></head><body bgcolor="#F0F0F0"><br /><br /><center><b>can not connect to database as administrative user.</center></body></html>');
|
|
|
|
|
exit();
|
|
|
|
|
}
|
|
|
|
|
$query="SELECT user FROM mysql.user WHERE user='{$_POST['dbuser']}';";
|
|
|
|
|
$result = @$connection->query($query);
|
|
|
|
|
if (!$result) {
|
|
|
|
|
$entry='DB Error: "'.$connection->error.'"<br />';
|
|
|
|
|
$entry.='Offending command was: '.$query.'<br />';
|
|
|
|
|
echo($entry);
|
|
|
|
|
}
|
|
|
|
|
if($result->num_rows==0){
|
|
|
|
|
$query="CREATE USER '{$_POST['dbuser']}' IDENTIFIED BY '{$_POST['dbpassword']}';";
|
|
|
|
|
}else{
|
|
|
|
|
$query='';
|
|
|
|
|
}
|
|
|
|
|
$query.="CREATE DATABASE IF NOT EXISTS `{$_POST['dbname']}`;";
|
|
|
|
|
$query.="GRANT ALL PRIVILEGES ON `{$_POST['dbname']}` . * TO '{$_POST['dbuser']}';";
|
|
|
|
|
$result = @$connection->multi_query($query);
|
|
|
|
|
if (!$result) {
|
|
|
|
|
$entry='DB Error: "'.$connection->error.'"<br />';
|
|
|
|
|
$entry.='Offending command was: '.$query.'<br />';
|
|
|
|
|
echo($entry);
|
|
|
|
|
}
|
|
|
|
|
$connection->close();
|
|
|
|
|
}elseif($CONFIG_DBTYPE=='pgsql'){
|
|
|
|
|
$connection = pg_connect("user='$adminUser' host='$CONFIG_DBHOST' password='$adminPwd'");
|
|
|
|
|
$query="CREATE USER {$_POST['dbuser']} WITH PASSWORD '{$_POST['dbpassword']}' CREATEDB;";
|
|
|
|
|
$result = pg_exec($connection, $query);
|
|
|
|
|
$query="select count(*) from pg_catalog.pg_database where datname = '{$_POST['dbname']}';";
|
|
|
|
|
$result = pg_exec($connection, $query);
|
|
|
|
|
if(pg_result($result,0,0)==0){
|
|
|
|
|
$query="CREATE DATABASE {$_POST['dbname']};";
|
|
|
|
|
$result = pg_exec($connection, $query);
|
|
|
|
|
$query="ALTER DATABASE {$_POST['dbname']} OWNER TO {$_POST['dbuser']};";
|
|
|
|
|
$result = pg_exec($connection, $query);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$connection->close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|