From f6611dde98990cd9ff141a23be4971ce384b88ca Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@users.sourceforge.net>
Date: Sun, 1 Feb 2004 20:32:41 +0000
Subject: [PATCH] =?UTF-8?q?Quelques=20corrections=20sur=20la=20proc=E9dure?=
 =?UTF-8?q?=20d'install:=20Gestion=20du=20cas=20ou=20SCRIPT=5FURI=20n'est?=
 =?UTF-8?q?=20pas=20d=E9fini.=20Les=20infos=20globales=20du=20serveur=20(h?=
 =?UTF-8?q?ost=20et=20compte=20admin=20MySQL)=20sont=20avant=20les=20infos?=
 =?UTF-8?q?=20propres=20=E0=20dolibarr=20(nom=20base=20et=20compte=20Dolib?=
 =?UTF-8?q?arr).=20Ce=20qui=20est=20plus=20intuitif.=20Il=20manquait=20la?=
 =?UTF-8?q?=20couleur=20sur=20la=20premi=E8re=20ligne.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 htdocs/install/etape1.php |  4 +-
 htdocs/install/index.php  | 95 ++++++++++++++++++++-------------------
 2 files changed, 52 insertions(+), 47 deletions(-)

diff --git a/htdocs/install/etape1.php b/htdocs/install/etape1.php
index df0eb46704e..e4be25fb090 100644
--- a/htdocs/install/etape1.php
+++ b/htdocs/install/etape1.php
@@ -139,7 +139,7 @@ if ($HTTP_POST_VARS["action"] == "set")
   require ($dolibarr_main_document_root . "/lib/mysql.lib.php");
   require ($dolibarr_main_document_root . "/conf/conf.class.php");
 
-  if ($HTTP_POST_VARS["db_create_user"] == "on")
+  if (isset($HTTP_POST_VARS["db_create_user"]) && $HTTP_POST_VARS["db_create_user"] == "on")
     {
       $conf = new Conf();
       $conf->db->host = $dolibarr_main_db_host;
@@ -213,7 +213,7 @@ if ($HTTP_POST_VARS["action"] == "set")
 	  //
 	  // Cr�ation de la base
 	  //
-	  
+
 	  print "<tr><td>Echec de connexion � la base : $dolibarr_main_db_name</td><td>Warning</td></tr>";
 	  print '<tr><td colspan="2">Cr�ation de la base : '.$dolibarr_main_db_name.'</td></tr>';
 	  	  
diff --git a/htdocs/install/index.php b/htdocs/install/index.php
index fbed6a180fb..c73ae9de291 100644
--- a/htdocs/install/index.php
+++ b/htdocs/install/index.php
@@ -60,105 +60,110 @@ else
 <form action="etape1.php" method="POST">
 <input type="hidden" name="action" value="set">
 <table border="0" cellpadding="4" cellspacing="0">
-<tr>
+<tr class="bg2">
 <td valign="top">
 <?php print "R�pertoire d'installation"; ?>
 </td><td valign="top"><input type="text" size="60" value="
 <?PHP
-
-if(strlen($dolibarr_main_url_root) == 0)
+if(! isset($dolibarr_main_url_root) || strlen($dolibarr_main_url_root) == 0)
 {
-$dolibarr_main_document_root = substr($_SERVER["SCRIPT_FILENAME"],0,strlen($_SERVER["SCRIPT_FILENAME"])-18);
+	$dolibarr_main_document_root = substr($_SERVER["SCRIPT_FILENAME"],0,strlen($_SERVER["SCRIPT_FILENAME"])-18);
+	# Nettoyage du path propos�
+	$dolibarr_main_document_root = str_replace('\\\\','/',$dolibarr_main_document_root);	# Gere les chemins windows avec double "\"
+	$dolibarr_main_document_root = ereg_replace('[\\\\\/]$','',$dolibarr_main_document_root);	# Supprime le "\" ou "/" de fin
 }
-
-
- print $dolibarr_main_document_root 
+print "$dolibarr_main_document_root";
 ?>
 " name="main_dir">
 </td><td>
 Sans le slash "/" � la fin<br>
-exemple : /var/www/dolibarr/htdocs
-
+exemples :<br>
+<li>/var/www/dolibarr/htdocs</li>
+<li>C:/wwwroot/dolibarr</li>
 </td>
 </tr>
-
 <tr class="bg1">
 <td valign="top">
 URL Racine</td><td valign="top"><input type="text" size="60" name="main_url" value="
 <?PHP 
-if(strlen($dolibarr_main_url_root) == 0)
+if(! isset($dolibarr_main_url_root) || strlen($dolibarr_main_url_root) == 0)
 {
-$dolibarr_main_url_root = substr($_SERVER["SCRIPT_URI"],0,strlen($_SERVER["SCRIPT_URI"])-9);
+	if (isset($_SERVER["SCRIPT_URI"])) {	# Si d�fini
+		$dolibarr_main_url_root=$_SERVER["SCRIPT_URI"];
+	}
+	else {									# SCRIPT_URI n'est pas toujours d�fini (Exemple: Apache 2.0.44 pour Windows)
+		$dolibarr_main_url_root="http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];
+	}
+	$dolibarr_main_url_root = substr($dolibarr_main_url_root,0,strlen($dolibarr_main_url_root)-9);
+	# Nettoyage de l'URL propos�e
+	$dolibarr_main_url_root = ereg_replace('\/$','',$dolibarr_main_url_root);	# Supprime le /
+	$dolibarr_main_url_root = ereg_replace('\/index\.php$','',$dolibarr_main_url_root);	# Supprime le /index.php
+	$dolibarr_main_url_root = ereg_replace('\/install$','',$dolibarr_main_url_root);	# Supprime le /install
 }
-
-print $dolibarr_main_url_root ;
-
+print "$dolibarr_main_url_root";
 ?>">
 </td><td>
-exemples : 
-<br>
-<ul>
+exemples :<br>
 <li>http://dolibarr.lafrere.net</li>
 <li>http://www.lafrere.net/dolibarr</li>
-</ul>
 </tr>
 
 
-<tr>
-<td colspan="3" align="center"><h2>Base de donn�es<h2></td>
-</tr>
+<tr><td colspan="3" align="center"><h2>Base de donn�es - Acc�s super utilisateur</h2></td></tr>
 
 <tr class="bg1">
-<td valign="top">Serveur</td><td valign="top"><input type="text" name="db_host" value="<?PHP print $dolibarr_main_db_host ?>"></td>
-<td><div class="comment">Nom du serveur de base de donn�es, g�n�ralement 'localhost' quand le serveur est install� sur la m�me machine que le serveur web</div></td>
+<td valign="top">Serveur</td><td valign="top"><input type="text" name="db_host" value="<?PHP print isset($dolibarr_main_db_host)?$dolibarr_main_db_host:'localhost' ?>"></td>
+<td><div class="comment">Nom ou adresse ip du serveur de base de donn�es, g�n�ralement 'localhost' quand le serveur est install� sur la m�me machine que le serveur web</div></td>
 </tr>
 
 <tr class="bg2">
-<td>Nom de la base de donn�es</td><td valign="top"><input type="text" name="db_name" value="<?PHP print $dolibarr_main_db_name ?>"></td>
-<td><div class="comment">Nom de votre base de donn�es</div></td>
-</tr>
-
-<tr class="bg1">
 <td valign="top">Login</td>
 <td>
-<input type="text" name="db_user" value="<?PHP print $dolibarr_main_db_user ?>">
-</td><td><div class="comment">Laisser vide si vous vous connectez en anonymous</div>
+<input type="text" name="db_user_root">
+</td><td><div class="comment">Login de l'utilisateur ayant les droits de cr�ation de la base de donn�es, inutile si vous �tes chez un h�bergeur, votre base de donn�es est d�j� cr��e. Laisser vide si vous vous connectez en anonymous</div>
 </td>
 </tr>
 
-<tr class="bg2">
+<tr class="bg1">
 <td valign="top">Mot de passe</td>
 <td>
-<input type="text" name="db_pass" value="<?PHP print $dolibarr_main_db_pass ?>">
+<input type="text" name="db_pass_root">
 </td><td><div class="comment">Laisser vide si vous vous connectez en anonymous</div>
 </td>
 </tr>
 
-<tr class="bg1">
-<td valign="top">Cr�er l'utilisateur</td>
-<td>
-<input type="checkbox" name="db_create_user">
-</td><td><div class="comment">Cocher cette option si l'utilisateur doit-�tre cr��</div>
-</td>
-</tr>
 
 
+<tr>
+<td colspan="3" align="center"><h2>Base de donn�es Dolibarr<h2></td>
+</tr>
 
-<tr><td colspan="3" align="center"><h2>Base de donn�es - Acc�s super utilisateur</h2></td></tr>
+<tr class="bg2">
+<td>Nom de la base de donn�es</td><td valign="top"><input type="text" name="db_name" value="<?PHP print isset($dolibarr_main_db_name)?$dolibarr_main_db_name:'dolibarr' ?>"></td>
+<td><div class="comment">Nom de la base de donn�es Dolibarr (sera cr��e si n�cessaire)</div></td>
+</tr>
 
 <tr class="bg1">
 <td valign="top">Login</td>
 <td>
-<input type="text" name="db_user_root">
-</td><td><div class="comment">Login de l'utilisateur ayant les droits de cr�ation de la base de donn�es, inutile si vous �tes chez un h�bergeur, votre base de donn�es est d�j� cr��e. Laisser vide si vous vous connectez en anonymous</div>
+<input type="text" name="db_user" value="<?PHP print isset($dolibarr_main_db_user)?$dolibarr_main_db_user:'' ?>">
+</td><td><div class="comment">Login de l'administrateur de la base de donn�es Dolibarr. Laisser vide si vous vous connectez en anonymous</div>
 </td>
 </tr>
 
 <tr class="bg2">
 <td valign="top">Mot de passe</td>
 <td>
-<input type="text" name="db_pass_root">
-</td><td><div class="comment">Laisser vide si vous vous connectez en anonymous</div>
+<input type="text" name="db_pass" value="<?PHP print isset($dolibarr_main_db_pass)?$dolibarr_main_db_pass:'' ?>">
+</td><td><div class="comment">Mot de passe de l'administrateur de la base de donn�es Dolibarr. Laisser vide si vous vous connectez en anonymous</div>
+</td>
+</tr>
+
+<tr class="bg1">
+<td valign="top">Cr�er l'utilisateur</td>
+<td>
+<input type="checkbox" name="db_create_user">
+</td><td><div class="comment">Cocher cette option si l'utilisateur doit-�tre cr��</div>
 </td>
 </tr>
 
-- 
GitLab