Passage en php 8.1.x

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Passage en php 8.1.x

    Bonjour,
    j’essaye de passer un de mes sites en J!3 vers la version php 8.1.X mais j’ai des erreurs qui s’affichent, je n’ai pas l’impression que ces erreurs soient relatifs à des extensions (je n’ai aucune indication dans les erreurs reportés qui puissent m'aider à localiser une extension), mais plutôt à Joomla, pas sûr… Quelqu’un peut m’en dire un peu plus?
    En php 8.0 le site n’affiche pas d’erreur…

    Merci​
    Lorenzo


    Deprecated: Joomla\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/kxddsmfp/MON-SITE/libraries/vendor/joomla/input/src/Input.php on line 41

    Deprecated: Return type of Joomla\Input\Input::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/kxddsmfp/MON-SITE/libraries/vendor/joomla/input/src/Input.php on line 170

    Deprecated: Joomla\CMS\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/kxddsmfp/MON-SITE/libraries/src/Input/Input.php on line 31

    Warning: session_name(): Session name cannot be changed after headers have already been sent in /home/kxddsmfp/MON-SITE/libraries/joomla/session/handler/native.php on line 128

    Deprecated: Joomla\CMS\Input\Cookie implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/kxddsmfp/MON-SITE/libraries/src/Input/Cookie.php on line 0

    Warning: session_cache_limiter(): Session cache limiter cannot be changed after headers have already been sent in /home/kxddsmfp/MON-SITE/libraries/joomla/session/handler/native.php on line 235
    Error: Failed to start application: Failed to start the session because headers have already been sent by "/home/kxddsmfp/MON-SITE/libraries/vendor/joomla/input/src/Input.php" at line 41.​
    Dernière édition par porcini à 29/05/2023, 15h05

  • #2
    Bonjour,
    Je ne connais pas la V3 de joomla, mais Warning: session_cache_limiter(): me fait penser qu'il faudrait commencer par vider le cache du site dans un premier temps.

    Commentaire


    • #3
      Bonjour,
      ... je ne pense pas que ce soit le cache car il est vidé régulièrement. Je ne pense pas non plus que Deprecated et Warning donnent une page blanche (pas sûr), je pense plutôt à Error (dernière ligne) qui renvoie tout de même aux premiers trois avertissements Deprecated

      Commentaire


      • #4
        Bonjour,

        Active le débogage pour essayer de savoir quelle extension provoque l'erreur fatale.
        J3 fonctionne sous PHP 8.1

        warning, deprecated, etc. ne sont que des informations sur la compatibilité avec la version suivante de PHP, a priori, qu'on masque en mettant le rapport d'erreurs à "aucun" sur les sites de production.
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          ... le problème est que si j'active le débogage système je n'ai pas accès aux infos puisque j'ai une page blanche avec les avertissements que j'ai listé dans mon premier message...

          Commentaire


          • #6
            Essaie de désactiver l'affichage (ou de réduire le niveau) des erreurs et d'activer le débogage système fin d'avoir la pile des appels.

            Le problème est que tu as des affichages d'erreurs avant que la session (au sens php) ne soit ouverte (ce que empêche l'ouverture de session php - d'où les Warning parlant des fonction de session -> headers already sent)
            Dernière édition par roland_d_alsace à 29/05/2023, 20h08
            A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
            Rejoignez le Joomla Users Groupe Alsace...
            roland_d_alsace va-t-il devenir roland_du_grand_est ?

            Commentaire


            • #7
              Ne cherche pas + loin, je viens de rapidement jeter un coup d'oeuil, le problème vient bien du framework de Joomla 3.
              Je pense que cela vient de l'appel à Jinput pour la lecture du cookie de session.
              Soit tu désactives les erreurs, soit tu reste en php8.0
              Dernière édition par roland_d_alsace à 29/05/2023, 22h13
              A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
              Rejoignez le Joomla Users Groupe Alsace...
              roland_d_alsace va-t-il devenir roland_du_grand_est ?

              Commentaire


              • #8
                Bonjour

                Il y a des raisons de ne pas passer sur 8.2 ?

                De mémoire, la version 8.1 (morte) était bugguée mais ne ne me souviens plus où.
                Christophe (cavo789)
                Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                Commentaire


                • #9
                  Bonjour,

                  Joomla! 3 n'est pas compatible avec PHP 8.2, à ma connaissance.

                  J'ai plus d'un site Joomla! 3 (Joaktree, sites de tests, sites de clients qui tardent à se décider alors que leur version 4 est prête...) qui tournent sans erreur sous PHP 8.1
                  Dernière édition par RobertG à 30/05/2023, 11h14
                  "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                  MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                  Commentaire


                  • #10
                    J3 sous php8.1 je n'ai pas testé, mais le Deprecated provient d'un appel à la classe input du framework avant que la session ne soit active, et il provient bien du framework de Joomla.
                    C'est l'affichage des messages "Deprecated" qui déclenche ensuite les Warning de session et empêche son l'ouverture.

                    Si comme le dit Robert, de son côté il n'y a pas de Warning sous J3/php8.1, c'est certainement qu'il n'a pas les mêmes plugins actifs que toi.
                    Donc peut-être un plugin de connexion natif non 'habituel' ou tiers (joomsocial, cb,...) qui appelle cette fonction du framework dans ces conditions ?

                    Mais si tu désactives les erreurs, il ne devrait pas y avoir de problème, si ?
                    Dernière édition par roland_d_alsace à 30/05/2023, 08h59
                    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                    Rejoignez le Joomla Users Groupe Alsace...
                    roland_d_alsace va-t-il devenir roland_du_grand_est ?

                    Commentaire


                    • #11
                      Une précision : les warning et deprecated s'affichent bien lorsque le débogage est activé et le rapport d'erreurs est celui par défaut, mais pas d'erreur 0.
                      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                      Commentaire


                      • #12
                        Bonjour tout le monde et merci pour vos réponse...
                        Après plusieurs va et vient entre le back-end et le cPanel de mon hébergeur je suis arrivé à ce constat: le problème apparaît uniquement en PHP 8.1 (EA-PHP) quand le rapport d'erreurs de Joomla est sur “Maximum” ou “Développement”, étrangement je n’ai accès ni au back-end ni au front-end quand l'une de ces deux options est activée…
                        Concernant la version du PHP en 8.2, mon hébergeur la propose uniquement en ALT-PHP et dans ce cas c’est plantage sec avec la simple parole “Erreur” sur page blanche et ceci autant côté back-end que côté front-end.
                        Donc pour le moment je vais me contenter de passer à PHP 8.1 en version EA-PHP.
                        Pour ceux qui veulent comprendre la différence entre ALT-PHP et EA-PHP​, mais dans ce post je pense qu'aucun de vous en aura besoin
                        Dernière édition par porcini à 30/05/2023, 11h14

                        Commentaire


                        • #13
                          Envoyé par porcini Voir le message
                          Bonjour tout le monde et merci pour vos réponse...
                          ... je suis arrivé à ce constat: le problème apparaît uniquement en PHP 8.1 (EA-PHP) quand le rapport d'erreurs de Joomla est sur “Maximum” ou “Développement”, étrangement je n’ai accès ni au back-end ni au front-end quand l'une de ces deux options est activée…
                          Hello.

                          Rien d'étrange, c'est une contrainte technique au niveau du protocole http.

                          C'est que que j'ai essayé d'expliquer: il ne faut pas qu'il y ait de sortie (d'affichage) (ici les 3 premiers "deprecated") avant l’ouverture de session par php.
                          Et c'est bien ce que dit ton message d'erreur : "Failed to start the session because headers have already been sent"

                          Et la formule que j’exprimai en #6 ...réduire le niveau d’affichage d'erreur... afin que les avertissements (deprecated et autres) ne s'affichent plus et c'est ce que tu as fait.
                          Dernière édition par roland_d_alsace à 30/05/2023, 18h57
                          A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
                          Rejoignez le Joomla Users Groupe Alsace...
                          roland_d_alsace va-t-il devenir roland_du_grand_est ?

                          Commentaire

                          Annonce

                          Réduire
                          Aucune annonce pour le moment.

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X