";
+
+ $check1=$db->getDefaultCharacterSetDatabase();
+ $check2=$db->getDefaultCollationDatabase();
+ dolibarr_install_syslog('etape1: Note that default server was charset='.$check1.' collation='.$check2, LOG_DEBUG);
+
+ // If values differs, we save conf file again
+ //if ($check1 != $dolibarr_main_db_character_set) dolibarr_install_syslog('etape1: Value for character_set is not the one asked for database creation', LOG_WARNING);
+ //if ($check2 != $dolibarr_main_db_collation) dolibarr_install_syslog('etape1: Value for collation is not the one asked for database creation', LOG_WARNING);
+ // TODO
+
}
else
{
@@ -445,7 +368,7 @@ if ($_POST["action"] == "set")
*/
if (! $error)
{
- dolibarr_install_syslog("etape1: connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name);
+ dolibarr_install_syslog("etape1: connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name, LOG_DEBUG);
//print "connexion de type=".$conf->db->type." sur host=".$conf->db->host." port=".$conf->db->port." user=".$conf->db->user." name=".$conf->db->name;
$db = new DoliDb($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port);
@@ -455,7 +378,7 @@ if ($_POST["action"] == "set")
// si accès serveur ok et accès base ok, tout est ok, on ne va pas plus loin, on a même pas utilisé le compte root.
if ($db->database_selected == 1)
{
- dolibarr_install_syslog("etape1: la connexion au serveur par le user ".$conf->db->user." est reussie");
+ dolibarr_install_syslog("etape1: connexion to server by user ".$conf->db->user." is ok", LOG_DEBUG);
print "
";
- dolibarr_install_syslog("etape1: la connexion a la base : ".$conf->db->name.",par le user : ".$conf->db->user." est reussie");
+ dolibarr_install_syslog("etape1: connexion to database : ".$conf->db->name.", by user : ".$conf->db->user." is ok", LOG_DEBUG);
print "
";
print $langs->trans("DatabaseConnection")." : ";
print $dolibarr_main_db_name;
@@ -475,7 +398,7 @@ if ($_POST["action"] == "set")
}
else
{
- dolibarr_install_syslog("etape1: la connexion au serveur par le user ".$conf->db->user." est reussie");
+ dolibarr_install_syslog("etape1: connexion to server by user ".$conf->db->user." is ok", LOG_DEBUG);
print "
";
- dolibarr_install_syslog("etape1: la connexion a la base ".$conf->db->name.",par le user ".$conf->db->user." a échoué");
+ dolibarr_install_syslog("etape1: connexion to database ".$conf->db->name.", bu user : ".$conf->db->user." has failed", LOG_ERROR);
print "
";
print $langs->trans("DatabaseConnection")." : ";
print $dolibarr_main_db_name;
@@ -526,4 +449,113 @@ if ($_POST["action"] == "set")
}
pFooter($error,$setuplang);
+
+
+/**
+ * Save configuration file
+ */
+function write_conf_file($conffile)
+{
+ global $conf,$langs;
+ global $_POST,$main_dir,$main_data_dir;
+ global $dolibarr_main_url_root,$dolibarr_main_document_root,$dolibarr_main_data_root,$dolibarr_main_db_host;
+ global $dolibarr_main_db_port,$dolibarr_main_db_name,$dolibarr_main_db_user,$dolibarr_main_db_pass;
+ global $dolibarr_main_db_type,$dolibarr_main_db_character_set,$dolibarr_main_db_collation,$dolibarr_main_authentication;
+ global $dolibarr_smarty_libs_dir,$dolibarr_smarty_compile,$dolibarr_smarty_cache;
+
+ $error=0;
+
+ $fp = fopen("$conffile", "w");
+ if($fp)
+ {
+ clearstatcache();
+
+ fputs($fp, '');
+ fclose($fp);
+
+ if (file_exists("$conffile"))
+ {
+ include("$conffile"); // On force rechargement. Ne pas mettre include_once !
+ conf($dolibarr_main_document_root);
+
+ print "
";
+ }
+ else
+ {
+ $error++;
+ }
+ }
+
+ return $error;
+}
+
?>
diff --git a/htdocs/lib/databases/mssql.lib.php b/htdocs/lib/databases/mssql.lib.php
index 8b6c7ba9d40..e4e35ab9d13 100644
--- a/htdocs/lib/databases/mssql.lib.php
+++ b/htdocs/lib/databases/mssql.lib.php
@@ -707,13 +707,15 @@ class DoliDb
}
/**
- \brief Cr�ation d'une nouvelle base de donn�e
- \param database nom de la database � cr�er
- \return resource resource d�finie si ok, null si k
- \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mssql, ...) car elles sont deprecated
- On force creation de la base avec le charset forcecharset
- */
- function DDLCreateDb($database)
+ * \brief Create a new database
+ * \param database Database name to create
+ * \param charset Charset used to store data
+ * \param collation Charset used to sort data
+ * \return resource resource defined if OK, null if KO
+ * \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mssql, ...) car elles sont deprecated
+ * On force creation de la base avec le charset forcecharset
+ */
+ function DDLCreateDb($database,$charset='',$collation='')
{
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;
diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php
index 24be80e3e79..05f2e2f0931 100644
--- a/htdocs/lib/databases/mysql.lib.php
+++ b/htdocs/lib/databases/mysql.lib.php
@@ -697,15 +697,20 @@ class DoliDb
/**
* \brief Create a new database
* \param database Database name to create
+ * \param charset Charset used to store data
+ * \param collation Charset used to sort data
* \return resource resource defined if OK, null if KO
* \remarks Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
* We force to create database with charset this->forcecharset and collate this->forcecollate
*/
- function DDLCreateDb($database)
+ function DDLCreateDb($database,$charset='',$collation='')
{
+ if (empty($charset)) $charset=$this->forcecharset;
+ if (empty($collation)) $collation=$this->collation;
+
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;
- $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
+ $sql.= ' DEFAULT CHARACTER SET '.$charset.' DEFAULT COLLATE '.$collation;
dolibarr_syslog($sql,LOG_DEBUG);
$ret=$this->query($sql);
@@ -714,6 +719,7 @@ class DoliDb
// We try again for compatibility with Mysql < 4.1.1
$sql = 'CREATE DATABASE '.$database;
$ret=$this->query($sql);
+ dolibarr_syslog($sql,LOG_DEBUG);
}
return $ret;
}
diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php
index 211a9941a7b..ca42edd6ca2 100644
--- a/htdocs/lib/databases/mysqli.lib.php
+++ b/htdocs/lib/databases/mysqli.lib.php
@@ -711,15 +711,20 @@ class DoliDb
/**
* \brief Create a new database
* \param database Database name to create
- * \return resource resource defined if OK, null if KO
+ * \param charset Charset used to store data
+ * \param collation Charset used to sort data
+ * \return resource resource defined if OK, null if KO
* \remarks Do not use function xxx_create_db (xxx=mysql, ...) as they are deprecated
* We force to create database with charset this->forcecharset and collate this->forcecollate
*/
- function DDLCreateDb($database)
+ function DDLCreateDb($database,$charset='',$collation='')
{
+ if (empty($charset)) $charset=$this->forcecharset;
+ if (empty($collation)) $collation=$this->collation;
+
// ALTER DATABASE dolibarr_db DEFAULT CHARACTER SET latin DEFAULT COLLATE latin1_swedish_ci
$sql = 'CREATE DATABASE '.$database;
- $sql.= ' DEFAULT CHARACTER SET '.$this->forcecharset.' DEFAULT COLLATE '.$this->forcecollate;
+ $sql.= ' DEFAULT CHARACTER SET '.$charset.' DEFAULT COLLATE '.$collation;
dolibarr_syslog($sql,LOG_DEBUG);
$ret=$this->query($sql);
@@ -728,6 +733,7 @@ class DoliDb
// We try again for compatibility with Mysql < 4.1.1
$sql = 'CREATE DATABASE '.$database;
$ret=$this->query($sql);
+ dolibarr_syslog($sql,LOG_DEBUG);
}
return $ret;
}
diff --git a/htdocs/lib/databases/pgsql.lib.php b/htdocs/lib/databases/pgsql.lib.php
index 8978fda0e26..f21b1283982 100644
--- a/htdocs/lib/databases/pgsql.lib.php
+++ b/htdocs/lib/databases/pgsql.lib.php
@@ -798,14 +798,19 @@ class DoliDb
/**
- \brief Cr�ation d'une nouvelle base de donn�e
- \param database nom de la database � cr�er
- \return resource resource d�finie si ok, null si ko
- \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated
- */
- function DDLCreateDb($database)
+ * \brief Create a new database
+ * \param database Database name to create
+ * \param charset Charset used to store data
+ * \param collation Charset used to sort data
+ * \return resource resource defined if OK, null if KO
+ * \remarks Ne pas utiliser les fonctions xxx_create_db (xxx=mysql, ...) car elles sont deprecated
+ */
+ function DDLCreateDb($database,$charset='',$collation='')
{
- $ret=$this->query('CREATE DATABASE '.$database.' OWNER '.$this->db_user.' ENCODING \''.$this->forcecharset.'\' ;');
+ if (empty($charset)) $charset=$this->forcecharset;
+ if (empty($collation)) $collation=$this->collation;
+
+ $ret=$this->query('CREATE DATABASE '.$database.' OWNER '.$this->db_user.' ENCODING \''.$charset.'\' ;');
return $ret;
}