PHP Warning sous Joomla 4

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

  • [RÉGLÉ] PHP Warning sous Joomla 4

    Bonjour

    Sous Joomla 4 (testé avec PHP 8), je place le rapport d'erreur au maximum.
    Dès lors, chaque PHP Warning en back end s'affiche dans une page vide et stoppe le script PHP.

    Est-ce un problème personnel ou d'autres que moi constatent le même fonctionnement? Je penche pour une configuration de php.ini mais je ne trouve pas laquelle.

    Merci
    Dernière édition par Colnem30 à 22/06/2022, 15h46

  • #2
    Hello,
    Il n'y a bien sûr aucune raison que tu aies ces erreurs avec un Joomla 4 sans extensions tierces.
    Il te faudrait indiquer les messages d'erreur, voir déjà si cela est lié à Joomla, à une extension, ou au serveur.
    Si tu vois que c'est une erreur PHP indique précisément quelle version de PHP 8 tu utilises
    Support FR de l'éditeur JCE: télécharger JCE en français, aide & forum - www.sarki.ch/jce

    Commentaire


    • #3
      Bonjour sarki
      Merci pour ta réponse.

      Je me suis sans doute mal exprimé.
      Je n'ai pas d'erreur injustifiée. En backend, chaque fois que j'ai une erreur générant un PHP Warning justifié, le warning s'affiche sur une page blanche et le script s'interromp comme si l'erreur était suivi d'un die(), contrairement à ce qui se passe sous Joomla 3 (où le Warning s'affiche sans interrompre le script).

      J'ai ce comportement y compris sur un site vierge: au moindre warning, le script s'arrête.
      Je pense qu'il doit y avoir un paramétrage dans le php.ini qui pourrait expliquer ce comportement si je suis le seul à l'avoir.

      D'où l'objet de ma question: lorsque vous avez un warning en backend, le script PHP est-il interrompu?
      Merci

      Commentaire


      • #4
        c'est clairement pas le warning qui interrompt quoi que ce soit
        rien n'a changé à ce niveau
        Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

        Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

        Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

        Commentaire


        • #5
          Bien ce que je craignais...

          Voici ce que j'ai en backend sur chaque warning (PHP8, Debug maximum)...

          Cliquez sur l'image pour l'afficher en taille normale

Nom : lf.png 
Affichages : 202 
Taille : 17,4 Ko 
ID : 2040685
          Affichage du warning sur fond blanc et interruption du chargement de la page: le script est arrêté.
          Ce qui fait que je vois des warning que d'autres ne voient pas, comme celui du fichier update.xml de lomart.

          Nota: je suis en localhost sous Windows IIS, site de développement Joomla 4, PHP 8.0 destiné à remplacer mon site de production (J3, PHP 7.4 avec un template et des extensions non compatibles PHP8). Je ne peux donc pas tester en ligne sous Apache.

          Commentaire


          • #6
            euh, je vois pas pq tu pourrais pas tester sur Apache en ligne.

            Voici un serveur gratuit par PlanetHoster : https://www.planethoster.com/fr/World-Lite
            Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

            Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

            Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

            Commentaire


            • #7
              Envoyé par woluweb Voir le message
              euh, je vois pas pq tu pourrais pas tester sur Apache en ligne.

              Voici un serveur gratuit par PlanetHoster : https://www.planethoster.com/fr/World-Lite
              Merci woluweb , ils ont aussi PHP 8 ?

              " Créez gratuitement et facilement un site Web PHP 7 "

              Commentaire


              • #8
                Parce que j'ai besoin d'un serveur Apache en PHP8 acceptant Joomla 4.

                Commentaire


                • #9
                  Envoyé par Colnem30 Voir le message
                  Parce que j'ai besoin d'un serveur Apache en PHP8 acceptant Joomla 4.

                  En principe, les sous-domaines sont gratuits. Tu n’as aucun site sur un hébergement Apache ?

                  Commentaire


                  • #10
                    Comme l'a dit sarki, sur un site vierge, tu n'as aucune raison d'avoir des warnings.
                    Et si des extensions sont incompatibles PHP 8, le site sous PHP 7.4 doit aussi te donner des messages de type deprecated te permettant de savoir où du code ne sera pas compatible PHP 8.
                    As-tu aussi mis le rapport d'erreurs au maximum ?
                    "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


                    • #11
                      Bonjour Robert

                      je répète: mon problème n'a pas trait à des warning non justifiés. Il n'apparaît que sur des warning justifiés.

                      Par exemple, je pars d'un site local vierge, j'installe UP de Lomart. Dès lors, si je vérifie les mises à jour, j'ai un PHP Warning et il est justifié. Sauf que sur mon backend, je ne vois rien d'autre que l'image postée plus haut: le warning suivi d'une interruption du script PHP.
                      Bien sûr, si je mets le débogage sur Aucun, je n'ai pas de warning. C'est d'ailleurs ce que je suis obligé de faire si je veux vérifier mes mises à jour.

                      Bonjour Helloo
                      Je peux installer autant de sous-domaine que je veux, mais je ne peux pas avoir un domaine en PHP 7 avec un sous domaine en PHP8. Donc, je ne peux pas tester en ligne en PHP8.

                      Commentaire


                      • #12
                        Si tu installes la version la plus récente d'UP, tu n'as pas de raison d'avoir un warning, à mon avis.
                        On dirait qu'en fait, après le warning, tu as une erreur fatale que ton serveur n'affiche pas.
                        Quelle version de PHP utilises-tu ? la 8.0 ou la 8.1 ?

                        Comme je l'ai dit précédemment, si tu veux des infos sur la compatibilité 8, reste en 7.4, laisse le débogage activé et mets le rapport d'erreurs au maximum pour récupérer un max d'infos (notice, warning, deprecated) te permettant de savoir où du code compatible 7.4 risque de poser problème en version 8.

                        Par ailleurs, es-tu absolument obligé d'utiliser IIS ? Ne peux-tu pas, en plus, tester sur Wampserver par exemple, en jouant sur le port pour le différencier d'IIS ?
                        "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


                        • #13
                          Bonjour Robert. Merci de t'intéresser à mon problème.

                          Si tu installes la version la plus récente d'UP, tu n'as pas de raison d'avoir un warning, à mon avis.
                          Si, il y en avait une (le warning sur l'image de mon post a été générée par UP) que Lomart vient de corriger:elle était liée à la balise client du fichier de mise à jour. Mais tu ne la voyais pas (lui non plus) car elle était écrasée par la poursuite du script. Comme chez moi le script s'interrompt, je la voyais. Grâce à mon bug, j'ai pu déceler des warnings que les développeurs ne voyaient pas, le plus difficile étant de les convaincre!

                          Comme je l'ai dit précédemment, si tu veux des infos sur la compatibilité 8, reste en 7.4, laisse le débogage activé et mets le rapport d'erreurs au maximum pour récupérer un max d'infos (notice, warning, deprecated) te permettant de savoir où du code compatible 7.4 risque de poser problème en version 8.
                          En fait, mon site de production est en J3/PHP7.4. Je prépare son remplacement par un site de développement J4/PHP8.0 en local sous Windows IIS, avec débogage au maximum pour traquer les erreurs.
                          Je n'ai pas voulu envisager une migration de J3 vers J4, même en PHP7.4, car mon template n'était pas compatible J4. Le plus simple était donc de repartir depuis un site vierge avec un nouveau template. Et je peux te dire que je ne regrette pas ce choix, d'autant plus que j'ai pu récupérer mes tables d'utilisateurs (un petit millier tout de même) alors que je n'ai que très peu d'articles à reconduire. J'ai commencé il y a 6 mois et je commence tout juste à en voir la fin. Imagine un peu si j'avais envisagé une migration!

                          Par ailleurs, es-tu absolument obligé d'utiliser IIS ?
                          En local sous Windows, j'ai installé MYSQL que j'ai couplé avec IIS. Dessous j'ai 6 bases de données indépendantes.
                          J'ignore si je peux installer Wampserver sans MySQL, puis le coupler avec un MySQL existant et déjà couplé avec IIS, le tout sans perdre mes bases de données.
                          Le travail m'a paru disproportionné par rapport au gain.
                          Mais je me suis juré que lorsque je changerai de PC, je laisserai tomber IIS en local!
                          Dernière édition par Colnem30 à 25/06/2022, 08h36

                          Commentaire


                          • #14
                            Envoyé par Colnem30 Voir le message
                            Par exemple, je pars d'un site local vierge, j'installe UP de Lomart. Dès lors, si je vérifie les mises à jour, j'ai un PHP Warning et il est justifié.
                            Justifié par quoi ? Suite à ton post sur mon forum, j'ai essayé de créer ce warning sans succès. Mais j'apprends ici que tu es sur IIS. Cela peut expliquer beaucoup de choses.
                            Les questions de RobertG sont, comme toujours, très pertinentes : version PHP exacte, test sous Wampserver ou Laragon

                            UP, le plugin universel à découvrir sur https//up.lomart.fr
                            bgMax
                            , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                            Commentaire


                            • #15
                              Bonjour Loïc

                              Comme je te l'ai écrit, par ça...


                              Et plus précisément par la section concernant la balise client:
                              Warning: As of Joomla! 4.0 only a string is allowed. Using numbers as client has been deprecated in 2012 and got removed in Joomla! 4.0 (Replace 0 with "site" and 1 with "administrator")

                              Soit la balise client doit contenir ces valeurs et non pas 0 ni 1 (modules et templates), soit elle ne doit pas être fournie (plugins pa exemple).
                              Depuis que tu l'as retirée de ton plugin, je n'ai plus l'erreur (si ce n'est sur d'autres sites avec la balise client à 0 ou à 1. Ceux qui ont la valeur site ou administrator ne génèrent pas l'erreur).

                              Je rajoute que je ne suis pas le seul à le penser: voir ici...


                              Quant au warning, il est généré par PHP 8.0 et non pas par IIS. La preuve, si je passe mon site local sous IIS en PHP 7.4, je n'ai pas l'erreur.

                              A+
                              Dernière édition par Colnem30 à 26/06/2022, 07h05

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X