We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5811
    • 1,717 Posts
    Extrait de la doc php: htmlspecialchars -- Convertit tous les caractères spéciaux en entité HTML.
    Description: string htmlspecialchars ( string string [, int quote_style])

    Certains caractères ont une valeur avec HTML, et doivent être remplacés par des balises HTML pour conserver leur valeur. htmlspecialchars() retourne une chaîne dont tous les caractères sensibles ont été remplacés par leur équivalent.

    htmlspecialchars() est utile pour empêcher un utilisateur de fournir un texte avec un sens HTML, dans un formulaire.

    htmlspecialchars() est pratique pour éviter que les textes fournis par les utilisateurs contiennent des balises HTML, comme dans le cas d’un livre d’or ou d’une tribune. htmlspecialchars() prend un argument optionnel qui indique ce qui doit être fait avec les guillemets simples et doubles. ENT_COMPAT (par défaut) convertira les guillemets doubles, et ignorera les guillemets simples. ENT_QUOTES convertira les deux types de guillemets et ENT_NOQUOTES les ignorera tous les deux.

    Actuellement, PHP remplace les valeurs suivantes :

    ’&’ (et commercial) devient ’&’

    ’"’ (guillemet double) devient ’"’ si ENT_NOQUOTES n’est pas actif

    ’’’ (guillemet simple) devient ’’’ si ENT_QUOTES est actif

    ’<’ (inférieur à) devient ’&lt;’

    ’>’ (supérieur à) devient ’&gt;’

    htmlentities convertit lui tous les caractères. Donc plus complet.
    Par contre je ne suis pas sur de comprendre, cela marche avec htmlspecialchars et pas avec htmlentities ?
      • 23050
      • 1,842 Posts
      Merci coroico mais j’avais lu déjà ça smiley C’est justement suite à ça que j’ai testé htmlspecialchars smiley

      Pour répondre à ta question : Si je mets en tooltip "Voir toutes les infos avec le mot-clé : [+tag+]", les caractères accentués du tooltip ne sont pas rendus... ça fait les caractères bizarres. Ca marche chez toi dans le tooltip avec htmlentities ?
        • 5811
        • 1,717 Posts
        En revanche, j’avais aussi un souci sur mon tooltip avec les accents. Du coup, j’ai testé de remplacer htmlentities par htmlspecialchars dans $this_tooltip = htmlentities($this_tooltip); (li 230 du snippet v 2.1.1).

        Tu parles de quel snippet Perrine ? de tvTagcloud ?
          • 23050
          • 1,842 Posts
          Oui TvTagCloud smiley

          Ma dernière question était pour ma culture générale : est-ce déconseillé de remplacer htmlentities par htmlspecialchars ? Mise à part la définition du manuel PHP, j’aurai voulu avoir des avis d’utilisateurs avertis... genre des trucs qui apparaissent pas dans la doc mais que tout bon codeur sait par expérience smiley
            • 5811
            • 1,717 Posts
            Tu veux dire quelque chose qui se dirait que de bouche à oreille grin

            Sinon peut etre que http://www.siteduzero.com/forum-83-2 17417-p1-la-securite.html résume bien l’essentiel.
              • 23050
              • 1,842 Posts
              Oui en quelque sorte ^^

              Merci pour le lien, je le lirai demain à tête reposée wink

              (Quant à ta réponse pour le snippet, je l’ai bien lu mais je testerai demain... aussi à tête reposée grin )
                • 5811
                • 1,717 Posts
                Si je mets en tooltip "Voir toutes les infos avec le mot-clé : [+tag+]", les caractères accentués du tooltip ne sont pas rendus... ça fait les caractères bizarres. Ca marche chez toi dans le tooltip avec htmlentities ?

                Perrine, je ne sais pas si depuis tu as eu la réponse ... Je viens de regarder le pb des accents dans le tooltip (en fait je n’avais pas encore installé la version 2.1.1 de tvTagCloud) : voici les modifications apportées pour une prise en compte correct des accents :

                ligne150 :
                $tag = ($caseSensitive) ? $tag : mb_strtolower($tag,$modx->config['etomite_charset']);	// If not case sensitive, lower-case it


                ligne 230 :
                 $this_tooltip = htmlentities($this_tooltip,ENT_QUOTES,$modx->config['etomite_charset']);


                Testé uniquement en UTF-8. Ci-joint le code du snippet patché : 2.1.1b
                  • 23050
                  • 1,842 Posts
                  Merci Coroico,

                  J’avais pour ma part remplacé htmlentities par htmlspecialchars et ça fonctionne donc je vais laisser tel quel ^^

                  Mais merci d’avoir remonté l’info ! smiley