Mise à jour vers 1.7.1050 chez free et peut-être d'autres ...

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
  1. <?php  
  2. #####!!!#####
  3.  
  4. $KwsConnectBdd = mysqli_connect('localhost','login','password','BdD','','');
  5.  
  6. #####!!!#####
  7. ?>


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
  1. <?php  
  2. #####!!!#####
  3.  
  4. if (is_null($port)) $port = ini_get("mysqli.default_port");
  5.  
  6. #####!!!#####
  7. ?>

et modifier comme suit la ligne299

Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. $KwsConnectBdd = mysqli_connect(''.$serveur.'\',\''.$login.'\',\''.$pass.'\',\''.$bdd.'\','.(int)$port.',\''.$socket.'\');
  5.  
  6. #####!!!#####
  7. ?>


la ligne 2 de mon connect.php est maintenant la suivante

Code PHP :
Pour copier le contenu exact du code,
Veuillez citer le message
  1. <?php  
  2. #####!!!#####
  3.  
  4. $KwsConnectBdd = mysqli_connect('localhost','login','password','BdD',3306,'');
  5.  
  6. #####!!!#####
  7. ?>
et tout fonctionne bien :)

ENJOY


Sujet écrit par Otocinclus le samedi 27 novembre 2021 à 02:23

[ Imprimer ] - [ Fermer la fenêtre ]