Valider b3f6d6d7 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Correction de quelques warnings php sur l'installation de SPIP avec Mysqli (et MariaDb).

1) éviter un warning si l'on se trompe de mot de passe de connexion à l'installation pour notre utilisateur. 

2) il semble que mariadb sous linux autorise tout utilisateur à se connecter à localhost sans mot de passe. 
Il a alors des droits USAGE sur la base de données 'test' si elle est présente (c'est le cas par défaut), 
mais il ne peut pas créer de nouvelles base de données. On retourne maintenant une erreur indiquant la situation 
si la connexion mysqli a réussie (par exemple si on ne renseigne pas de mot de passe de connexion), 
et qu'on tente de créer une nouvelle base de données à l'installation, le tout en évitant une foultitude de notices php que cela générait.

Il reste le fait qu'il semble que par défaut, en tout cas sous ubuntu/mariadb/mysqli choisi, on peut utiliser, 
avec une connexion locale uniquement (localhost), n'importe quel nom d'utilisateur, 
sans mot de passe, et installer le spip dans la base 'test' !

parent 4b7c2524
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+11 −6
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -48,9 +48,14 @@ function install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db,
	$fquery = sql_serveur('query', $server_db);
	if ($choix_db == "new_spip") {
		$re = ',^[a-z_][a-z_0-9-]*$,i';
		if (preg_match($re, $sel_db))
			sql_create_base($sel_db, $server_db);
		else {
		if (preg_match($re, $sel_db)) {
			$ok = sql_create_base($sel_db, $server_db);
			if (!$ok) {
				$re = "Impossible de creer la base $re";
				spip_log($re);
				return "<p>"._T("avis_connexion_erreur_creer_base")."</p><!--\n$re\n-->";
			}
		} else {
			$re = "Le nom de la base doit correspondre a $re";
			spip_log($re);
			return "<p>"._T("avis_connexion_erreur_nom_base")."</p><!--\n$re\n-->";
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -21,6 +21,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
	'avis_connexion_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.',
	'avis_connexion_echec_3' => '<b>N.B.</b> Sur de nombreux serveurs, vous devez <b>demander</b> l’activation de votre accès à la base de données avant de pouvoir l’utiliser. Si vous ne pouvez vous connecter, vérifiez que vous avez effectué cette démarche.',
	'avis_connexion_erreur_nom_base' => 'Le nom de la base ne peut contenir que des lettres, des chiffres et des tirets',
	'avis_connexion_erreur_creer_base' => 'La base de données n\'a pas pu être créée.',
	'avis_connexion_ldap_echec_1' => 'La connexion au serveur LDAP a échoué.',
	'avis_connexion_ldap_echec_2' => 'Revenez à la page précédente, et vérifiez les informations que vous avez fournies.',
	'avis_connexion_ldap_echec_3' => 'Alternativement, n’utilisez pas le support LDAP pour importer des utilisateurs.',
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -38,9 +38,9 @@ if (!defined('_ECRIRE_INC_VERSION')) return;
function req_mysql_dist($host, $port, $login, $pass, $db='', $prefixe='') {
	if (!charger_php_extension('mysqli')) return false;
	if ($port) {
		$link = mysqli_connect($host, $login, $pass, '', $port);
		$link = @mysqli_connect($host, $login, $pass, '', $port);
	} else {
		$link = mysqli_connect($host, $login, $pass);
		$link = @mysqli_connect($host, $login, $pass);
	}

	if (!$link) {