PHP 7.2.x et @lex Guestbook

Vos idées et demandes pour la prochaine mise à jour du script sont les bienvenues ici - Your ideas and suggestions for the next update.

Modérateurs : boulmontjj, Pierre G., Malabar, Otomatic

Otomatic
Modérateur
Modérateur
Messages : 664
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

PHP 7.2.x et @lex Guestbook

Messagepar Otomatic » Jeu 30 Nov 2017, 13:20

Bonjour,

PHP 7.2.0 apporte son lot de fonctions devenant obsolètes, c'est-à-dire qui ne seront plus supportées avec les évolutions futures.
Donc, pour ne pas être pris au dépourvu avec une prochaine version de PHP, autant modifier le code incriminé, d'autant plus que c'est relativement simple à faire.
-- Cas de l'instruction each() qui retourne chaque paire clé/valeur d'un tableau.
Avertissement : Cette fonction est dépréciée depuis PHP 7.2.0. Utiliser cette fonction est fortement déconseillé.
Dans la quasi totalité des cas, même si votre hébergeur passe en PHP 7.2.x, vous ne verrez pas cette erreur ; pour le moment ce n'est qu'un avertissement (Warning) et les hébergeurs utilisent le mode « Production » pour l'affichage des erreurs, c'est-à-dire que dans le php.ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Voir toutes les erreurs sauf les codes obsolètes qui ne fonctionneront plus dans des futures versions ainsi que les avertissements de code en dehors des standards.

C'est pourquoi, en developpement, il faut toujours utiliser :
error_reporting = E_ALL
Afficher toutes les erreurs, les avertissements et les avis, y compris les normes de codage.

Revenons à nos moutons, ou plutôt au remplacement de each() par foreach().
Seuls deux fichiers sont à modifier :
---- agb\include\funct_utiles.php
Remplacer lignes 63 à 75 :

Code : Tout sélectionner

function nettoyer_var_post(){
   global $_POST;

   if (!get_magic_quotes_gpc()){
      while (list ($key, $val) = each ($_POST))
         if (!is_array($val))
            $_POST[$key] = addslashes($val);

      while (list ($key, $val) = each ($_GET))
         if (!is_array($val))
            $_GET[$key] = addslashes($val);
   }
}

par

Code : Tout sélectionner

function nettoyer_var_post(){
   global $_POST ;
   if (!get_magic_quotes_gpc()){
   // Remplacement de each par foreach pour support PHP 7.2.x
      foreach($_POST as $key => $val) {
         if(!is_array($val))
            $_POST[$key] = addslashes($val);
      }
      foreach($_GET as $key => $val) {
         if(!is_array($val))
            $_GET[$key] = addslashes($val);
      }
   }
}

Remarque en passant :
Depuis PHP 5.4.0, la fonction get_magic_quotes_gpc() retourne toujours false car la fonctionalité des « guillemets magiques » a été supprimée de PHP. On pourrait donc supprimer la condition if (!get_magic_quotes_gpc()) vu qu'elle sera toujours exécutée.

---- agb\templates\modelixe\ModeliXe.php
Dans ce fichier, il y a onze remplacements à effectuer et, pour ce fichier, je ne vais pas indiquer : Remplacer .... par .... mais la ligne d'origine commentée suivie par la cause de la modification et la ligne de remplacement :
Attention à bien respecter la « casse » Majuscules et minuscules dans les noms des variables

Code : Tout sélectionner

            //while (list($cle, $Avalue) = each($arrayArg)){
            // Remplacement each par foreach pour PHP 7.2.x
            foreach($arrayArg as $cle => $Avalue){

Code : Tout sélectionner

                    //while (list($Vcle, $Vvalue) = each($value)){
                    // Remplacement each par foreach pour PHP 7.2.x
                              foreach($value as $Vcle => $Vvalue) {

Code : Tout sélectionner

                //while (list($cle, $valeur) = each($param)) {
                // Remplacement each par foreach pour PHP 7.2.x
                foreach($param as $cle => $valeur){

Code : Tout sélectionner

                //while (list($cle, $valeur) = each($param)) {
                // Remplacement each par foreach pour PHP 7.2.x
                foreach($param as $cle => $valeur){

Code : Tout sélectionner

            //while (list($Akey, $value) = each($keyString)){
            // Remplacement each par foreach pour PHP 7.2.x
            foreach($keyString as $Akey => $value){

Code : Tout sélectionner

                    //while (list($k, $v) = each($value)) {
                    // Remplacement each par foreach pour PHP 7.2.x
                    foreach($value as $k => $v){

Code : Tout sélectionner

        //while (list($Akey, $value) = each($this -> flagArray))
        // Remplacement each par foreach pour PHP 7.2.x
            foreach(($this -> flagArray) as $key => $value){

Code : Tout sélectionner

        //while (list($cle, $Fkey) = each($this -> attributArray)){
        // Remplacement each par foreach pour PHP 7.2.x
            foreach(($this -> attributArray) as $cle => $Fkey){

Code : Tout sélectionner

                //while (list($Pkey, $value) = each($Farray)){
                // Remplacement each par foreach pour PHP 7.2.x
                foreach($Farray as $Pkey => $value){

Code : Tout sélectionner

        //while (list($cle, $Fkey) = each($this -> flagArray)){
        // Remplacement each par foreach pour PHP 7.2.x
        foreach(($this -> flagArray) as $cle => $Fkey){

Code : Tout sélectionner

                //while (list($Pkey, $value) = each($Farray)){
                // Remplacement each par foreach pour PHP 7.2.x
                foreach($Farray as $Pkey => $value){

Et voilou !
C'est tout pour aujourd'hui.
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi

piotr
Messages : 2
Inscription : Sam 21 Mars 2015, 20:52

Re: PHP 7.2.x et @lex Guestbook

Messagepar piotr » Mer 30 Mai 2018, 17:07

Dear Mr. Otomatic,

Just wanted to let you know that your modifications on @lexguestbook,
to get the script working with PHP 7.2, are running perfectly.
Thanks for all your efforts. Great job !!!

Kind regards, Piotr Linski

Malabar
Admin
Admin
Messages : 4062
Inscription : Lun 07 Août 2006, 09:46
Localisation : Lorient
Contact :

Re: PHP 7.2.x et @lex Guestbook

Messagepar Malabar » Mer 30 Mai 2018, 22:19

:)
Le mâle à barre (Maxime)

Otomatic
Modérateur
Modérateur
Messages : 664
Inscription : Ven 11 Août 2006, 09:33
Localisation : Paris
Contact :

Re: PHP 7.2.x et @lex Guestbook

Messagepar Otomatic » Jeu 31 Mai 2018, 16:59

Thanks :merci:
Ce n'est pas par ce que l'erreur se propage qu'elle devient vérité. Gandhi


Revenir vers « Suggestions d'amélioration du script »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités