samedi 27 novembre 2021 à 02:23
Bonsoir,
je viens enfin de procéder à la mise à jour de deux sites hébergés chez free.fr depuis une version bâtarde 1.6.970 jusqu'à la 1.7.1060 ...
Lors du passage de la 1.6.985 à la 1.7.1050 j'ai rencontré un problème à priori non documenté sur le forum, c'est pourquoi je redige ce post car, comme on ve le voir, il y a bien un bug dans les fichiers d'installation de la 1.7.1050 ...
Explication et solution ....
Les faits : plantage lors de la connexion avec le nouveau connect.php en mysqli avec message d'eereu suivant :
Citation : Warning: mysqli_connect()expects parameter 5 to be long, string given in .../connect.php on line 2
Erreur de connexion(0)
Ligne incriminée du connect.php :
Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
<?php
#####!!!#####
-
$KwsConnectBdd = mysqli_connect('localhost','login','password','BdD','','');
-
#####!!!#####
?>
Me référant à la définition de la fonction mysqli_connect(string $hostname , string $username , string $password , string $database , int $port , string $socket ) je constate que la paramètre "port" à passer à la fontion est un int alors que dans mon connect.php il y a un string ( '' ). C'est conforme au message d'erreur affiché sur mon site et du coup je suis étonné que personne n'ai encore rencontré ce pb ... La config free est peut-être moins tolérante que celle d'autres hébergeurs, mais je ne pense pourtant pas être le premier à faire cette MàJ / installation sur un serveur free ...
La solution : dans lefichier /includes/class_install.php ajouter ligne 294
Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
<?php
#####!!!#####
-
if (is_null($port)) $port = ini_get("mysqli.default_port");
-
#####!!!#####
?>
et modifier comme suit la ligne299
Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
<?php
#####!!!#####
-
$KwsConnectBdd = mysqli_connect(''.$serveur.'\',\''.$login.'\',\''.$pass.'\',\''.$bdd.'\','.(int)$port.',\''.$socket.'\');
-
#####!!!#####
?>
la ligne 2 de mon connect.php est maintenant la suivante
Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
<?php
#####!!!#####
-
$KwsConnectBdd = mysqli_connect('localhost','login','password','BdD',3306,'');
-
#####!!!#####
?>
et tout fonctionne bien
ENJOY
LES C0NS, ÇA OSE TOUT. C'EST MÊME À ÇA QU'ON LES RECONNAÎT.
Michel Audiard