Question de Punycode ?

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

  • [RÉGLÉ] Question de Punycode ?

    Bonjour,

    Sur un site en version 4 de Joomla!, lorsque je quitte LazyDbBackup en validant comme en annulant, j'ai un message d'erreur
    100 This is already a Punycode string
    Cela concerne une ligne JFactory::getMailer() et l'erreur disparaît si j'interviens dans la base de données pour désactiver l'envoi du mail avec la sauvegarde.

    Le site a comme nom de domaine "au-gré-de-nos-plumes.fr", donc un caractère spécial.
    J'ai donc comparé avec un autre site, sous-domaine du nom "de-ergé.fr" et ce dernier n'a pas d'erreur à la sortie du plugin !

    Les deux sont en Joomla! 4, sur le même serveur et donc les mêmes paramètres PHP (7.4.26) et leur paramétrage SEF est le même, avec Unicode activé. La version de LazyDbBackup est la même : 4.0.2 PDO.
    Je ne vois donc pas quelle pourrait être la raison de cette différence.

    Quelqu'un aurait-il une piste ?
    Merci d'avance,
    Robert
    "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

  • #2
    Bonsoir Robert,

    Ton message d'erreur vient de libraries\vendor\algo26-matthias\idna-convert\src\Punycode\ToPunyCode.php, ligne 36

    Cette fonction vérifie si l'adresse de ton site a déjà été transformée au format internationale voir https://fr.wikipedia.org/wiki/Punycode (en bref, il recherche xn-- au début de l'adresse du site).

    Si tu passes tes noms de sites sur https://www.punycoder.com/ , tu verras à quoi ils ressemblent en mode "international".

    Pour info, la librairie idna-convert a évolué entre Joomla 3 et Joomla 4 : idna_convert (dans répertoire libraries J3)=> algo26-matthias (dans répertoire libraries\vendor J4).

    Donc, la question est de savoir pourquoi tu passes 2 fois dans cette fonction ?????

    Pascal
    cavo789 aime ceci.
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Merci Pascal,

      J'ignore pourquoi le nom (réécrit : xn--au-gr-de-nos-plumes-fzb.fr) passe déjà dans la fonction avant cette ligne qui appelle la fonction getMailer.
      Je viens de tenter de modifier l'adresse mail dans la configuration du site (qui utilisait le caractère accentué) pour la mettre à xn--au-gr-de-nos-plumes-fzb.fr : même message d'erreur ! Ce n'est donc pas LazyDbBackup qui est en cause.
      Si je change dans le fichier de configuration et que j'ouvre l'onglet serveur dans l'administration, je retrouve l'adresse en clair et si je teste l'envoi de mail, j'ai une erreur JSON 0.

      J'ai changé pour une autre adresse, l'envoi du mail de test se fait, mais sans message dans la page de configuration... et LazyDbBackup ne déclenche plus d'erreur, je reçois bien le fichier de sauvegarde.

      C'est donc Joomla! qui n'accepte pas l'envoi depuis une adresse sur un domaine de ce type ! Le nom de domaine, dans le sujet du mail, est bien xn--au-gr-de-nos-plumes-fzb.fr

      PS : j'ai créé une adresse sur le domaine "de-ergé.fr". Que je la mette ainsi ou réécrite, j'ai le message en rouge : "cette valeur n'est pas valide" ! Le problème est identique en version 3, et pourtant, le site touché utilisait précédemment l'adresse sur "au-gré-de-nos-plumes.fr" sans incident, avant migration en J4 !

      PS2 : si je change l'adresse sur un J3 en "de-ergé.fr", je la retrouve bien dans la configuration, le mail de test part et arrive, le mail de sauvegarde LazyDbBackup également.
      Dernière édition par RobertG à 12/12/2021, 19h43
      "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


      • #4
        Bon, je vais clore le sujet en acceptant à contrecœur cette restriction, malgré le fait que ça a fonctionné sur ce site J3 et que je ne pense pas avoir modifié alors l'adresse de messagerie du site autrement que depuis l'administration...


        "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
          Bonjour Robert,

          Quelques tests plus tard :

          - Si tu modifies l'adresse dans l'utilisateur, tu as le même problème (pour info, l'adresse est stockée en mode "punycode" dans la base de données)
          - Si tu entres l'adresse destinataire en tant que paramètre destinataire dans lazydbbackup, cela fonctionne correctement.

          Je pense qu'il y a effectivement un bug sur la gestion d'exception dans ToPunycode.php :
          - en version J3, il retourne false si l'adresse est déjà en mode "punycode" et il continue avec l'adresse trouvé (avec une moulinette _ucs4_to_utf8 qui ne semble pas faire grand chose dans ce cas)
          - en version J4, cela provoque une exception AlreadyPunycodeException (donc un plantage).

          Je vais remonter le problème sur github dès que je serai parvenu à le recréer à tous les coups.

          Pascal
          If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

          Commentaire


          • #6
            Bonjour Pascal,

            Je me demande s'il n'y a pas eu, il y a longtemps, une discussion à ce sujet où il avait été dit que ces adresses de messageries n'étaient définitivement pas acceptées (j'ai la mémoire qui flanche... ). JM y avait peut-être participé ?
            Je me demande comment font les utilisateurs de pays utilisant d'autres types de caractères.
            "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


            • #7
              problème signalé avec proposition de correction : https://github.com/joomla/joomla-cms/issues/36301

              C'est lié à Joomla 4 car, en J3, la fonction retourne "false" et continue...

              Pascal
              cavo789 aime ceci.
              If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

              Commentaire


              • #8
                Merci Pascal,

                Mais comme je l'ai testé hier sur un site J3, une adresse @de-ergé.fr saisie dans la configuration comme celle du serveur était aussi refusée.
                "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


                • #9
                  Pour info, j'ai fait une PR pour ce problème : https://github.com/joomla/joomla-cms/pull/36303

                  Advienne que pourra....

                  Pascal
                  RobertG aime ceci.
                  If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                  Commentaire


                  • #10
                    Merci Pascal !
                    "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 Pascal,

                      PR adopté, si j'ai bien compris !
                      Merci !
                      "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 Robert,

                        Pour qu'elle soit adoptée et intégrée, il faut maintenant que la PR soit testée par des humains (car, il en faut encore par moment....).

                        Si tu as 5 minutes (ou plus), peux-tu tester https://github.com/joomla/joomla-cms/pull/36303 ?

                        Voir https://docs.joomla.org/Testing_Joomla!_patches/fr

                        En résumé, il faut
                        - un compte github,
                        - charger patchtester https://github.com/joomla-extensions...ester/releases
                        - l'installer sur ton environnement local.
                        - dans les paramètres de patch tester, entrer dans l'onglet "Authentification Github" un jeton Github que tu peux créer, une fois que tu es connecté sur github, à l'adresse https://github.com/settings/tokens
                        - dans le composant Patch Tester, cliquer sur Récupération des données,
                        - chercher l'id 36303
                        - cliquer sur "appliquer le correctif"
                        - tester le correctif en entrant des domaines accentués soit l'adresse mail dans Config, test mail, soit dans l'adresse mail d'un utilisateur, soit dans l'adresse mail de LazyDBbackup (ce qui était la question initiale)
                        - finalement, si tout est OK, allez dans https://issues.joomla.org/tracker/joomla-cms/36303 et cliquez sur "Test this" pour donner le résultat du test.

                        Ok, cela doit durer un peu plus que 5 minutes.

                        Après, une fois que tu auras testé, il faudra une 2eme bonne volonté pour valider cette modification pour qu'elle soit intégré dans la prochaine version (il faut 2 humains dans l'affaire).

                        Pascal
                        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                        Commentaire


                        • #13
                          Merci Pascal,

                          Il faut que je trouve un de mes sites avec Patchtester installé, que j'utilise déjà parfois. Je n'ai jamais ajouté de jeton dans son paramétrage, il me semble, juste récupéré les données régulièrement.
                          "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


                          • #14
                            Merci pour la validation sur github.

                            Pour qu'elle soit validée par le système, il faut passer par l'étape 'test this' de https://issues.joomla.org/tracker/joomla-cms/36303

                            Pascal
                            If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                            Commentaire


                            • #15
                              Fait et approuvé !
                              Merci Pascal !
                              "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

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X