diff --git a/htdocs/install/etape0.php b/htdocs/install/etape0.php
index b0d221012b0..c8f5b31b8c1 100644
--- a/htdocs/install/etape0.php
+++ b/htdocs/install/etape0.php
@@ -34,6 +34,7 @@ $langs->setDefaultLang($setuplang);
$langs->load("admin");
$langs->load("install");
+$langs->load("errors");
$error = 0;
@@ -82,36 +83,45 @@ if (! isset($_POST["db_name"]) || ! $_POST["db_name"])
/**
-* Si l'utilisateur n'est pas déjà créé, on se connecte à l'aide du login root'
+* Tentative de connexion a la base
*/
if (! $error)
{
- require_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php");
- if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on")
- {
- $databasefortest=$conf->db->name;
- if ($_POST["db_type"] == 'mysql' ||$_POST["db_type"] == 'mysqli')
- {
- $databasefortest='mysql';
- }
- elseif ($_POST["db_type"] == 'pgsql')
- {
- $databasefortest='postgres';
+ $result=include_once($main_dir."/lib/databases/".$_POST["db_type"].".lib.php");
+ if ($result)
+ {
+ if (isset($_POST["db_create_user"]) && $_POST["db_create_user"] == "on")
+ {
+ $databasefortest=$conf->db->name;
+ if ($_POST["db_type"] == 'mysql' ||$_POST["db_type"] == 'mysqli')
+ {
+ $databasefortest='mysql';
+ }
+ elseif ($_POST["db_type"] == 'pgsql')
+ {
+ $databasefortest='postgres';
+ }
+ else
+ {
+ $databasefortest='mssql';
+ }
+ $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest);
}
else
- {
- $databasefortest='mssql';
+ {
+ $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"]);
+ }
+ if ($db->error)
+ {
+ print '
'.$db->error.'
';
+ $error++;
}
- $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$userroot,$passroot,$databasefortest);
}
else
- {
- $db = new DoliDb($_POST["db_type"],$_POST["db_host"],$_POST["db_user"],$_POST["db_pass"],$_POST["db_name"]);
- }
- if ($db->error)
{
- print ''.$db->error.'
';
- $error++;
+ print "
\nFailed to include_once(\"".$main_dir."/lib/databases/".$_POST["db_type"].".lib.php\")
\n";
+ print ''.$langs->trans("ErrorWrongValueForParameter",$langs->transnoentities("WebPagesDirectory")).'
';
+ $error++;
}
}
diff --git a/htdocs/install/fileconf.php b/htdocs/install/fileconf.php
index 23e0208d5db..f01b1861b55 100644
--- a/htdocs/install/fileconf.php
+++ b/htdocs/install/fileconf.php
@@ -210,14 +210,14 @@ while (($file = readdir($handle))!==false)
if ($type=='mysql') { $versionbasemin=array(3,1,0); $testfunction='mysql_connect'; }
if ($type=='mysqli') { $versionbasemin=array(4,1,0); $testfunction='mysqli_connect'; }
if ($type=='pgsql') { $versionbasemin=array(8,1,0); $testfunction='pg_connect'; }
- if ($type=='mssql') { $versionbasemin=array(2000); $testfunction='mssql_connect'; }
+ if ($type=='mssql') { $versionbasemin=array(2000); $testfunction='mssql_connect'; }
// Remarques
$note='';
if ($type=='mysql') $note='(Mysql >= '.versiontostring($versionbasemin).')';
if ($type=='mysqli') $note='(Mysql >= '.versiontostring($versionbasemin).')';
- if ($type=='pgsql') $note='(Postgresql >= '.versiontostring($versionbasemin).') '.$langs->trans("Experimental");
- if ($type=='mssql') $note='(SQL Server >= '.versiontostring($versionbasemin).') '.$langs->trans("Experimental");
+ if ($type=='pgsql') $note='(Postgresql >= '.versiontostring($versionbasemin).')';
+ if ($type=='mssql') $note='(SQL Server >= '.versiontostring($versionbasemin).')';
// Affiche ligne dans liste
$option.='';
}
}
diff --git a/htdocs/install/inc.php b/htdocs/install/inc.php
index 8485d05d24b..f5e27b106bc 100644
--- a/htdocs/install/inc.php
+++ b/htdocs/install/inc.php
@@ -38,25 +38,48 @@ if (isset($_SERVER["DOCUMENT_URI"]) && $_SERVER["DOCUMENT_URI"])
$_SERVER["PHP_SELF"]=$_SERVER["DOCUMENT_URI"];
}
-
+$includeconferror='';
$conffile = "../conf/conf.php";
$charset="ISO-8859-1";
-if (file_exists($conffile))
+if (! defined('DONOTLOADCONF') && file_exists($conffile))
{
- include_once($conffile); // Fichier conf chargé
+ $result=include_once($conffile); // Load conf file
+ if ($result)
+ {
+ // Remove last / or \ on directories or url value
+ if (! empty($dolibarr_main_document_root) && ! ereg('^[\\\/]+$',$dolibarr_main_document_root)) $dolibarr_main_document_root=ereg_replace('[\\\/]+$','',$dolibarr_main_document_root);
+ if (! empty($dolibarr_main_url_root) && ! ereg('^[\\\/]+$',$dolibarr_main_url_root)) $dolibarr_main_url_root=ereg_replace('[\\\/]+$','',$dolibarr_main_url_root);
+ if (! empty($dolibarr_main_data_root) && ! ereg('^[\\\/]+$',$dolibarr_main_data_root)) $dolibarr_main_data_root=ereg_replace('[\\\/]+$','',$dolibarr_main_data_root);
- // Remove last / or \ on directories or url value
- if (isset($dolibarr_main_document_root) && ! ereg('^[\\\/]+$',$dolibarr_main_document_root)) $dolibarr_main_document_root=ereg_replace('[\\\/]+$','',$dolibarr_main_document_root);
- if (isset($dolibarr_main_url_root) && ! ereg('^[\\\/]+$',$dolibarr_main_url_root)) $dolibarr_main_url_root=ereg_replace('[\\\/]+$','',$dolibarr_main_url_root);
- if (isset($dolibarr_main_data_root) && ! ereg('^[\\\/]+$',$dolibarr_main_data_root)) $dolibarr_main_data_root=ereg_replace('[\\\/]+$','',$dolibarr_main_data_root);
-
- if (isset($dolibarr_main_document_root) && $dolibarr_main_document_root)
- {
- conf($dolibarr_main_document_root);
+ // Create conf object
+ if (! empty($dolibarr_main_document_root))
+ {
+ $result=conf($dolibarr_main_document_root);
+ }
+ // Load database driver
+ if ($result)
+ {
+ if (! empty($dolibarr_main_document_root) && ! empty($dolibarr_main_db_type))
+ {
+ $result=include_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
+ if ($result)
+ {
+ // OK
+ }
+ else
+ {
+ $includeconferror='ErrorBadValueForDolibarrMainDBType';
+ }
+ }
+ }
+ else
+ {
+ $includeconferror='ErrorBadValueForDolibarrMainDocumentRoot';
+ }
}
- if (isset($dolibarr_main_document_root) && $dolibarr_main_document_root && $dolibarr_main_db_type && ! defined('DONOTLOADCONF'))
+ else
{
- require_once($dolibarr_main_document_root . "/lib/databases/".$dolibarr_main_db_type.".lib.php");
+ $includeconferror='ErrorBadFormatForConfFile';
}
}
if (! isset($dolibarr_main_db_prefix) || ! $dolibarr_main_db_prefix) $dolibarr_main_db_prefix='llx_';