IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème avec htmlentities


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Par défaut Problème avec htmlentities
    Je n'arrive pas à comprendre pourquoi ca ne marche pas le htmlentities chez moi
    j'ai essayé simplement ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $orig = 'J\'ai "sorti" le <strong>chien</strong> tout à l\'heure';
    $a = htmlentities($orig,ENT_QUOTES,'UTF-8');
    $b = html_entity_decode($a,ENT_QUOTES,'UTF-8');
     
    echo $a; // J'ai &quot;sorti&quot; le &lt;strong&gt;chien&lt;/strong&gt; tout &amp;agrave; l'heure
    echo $b; // J'ai "sorti" le <strong>chien</strong> tout à l'heure
    ?>
    et cela ne m'affiche rien.

    J'ai pris ce bout de code pour comprendre car au départ mon problème, quand j'utilise htmlentities avec un champs texte est que je mets une phrase avec un accent comme par exemple "testé" et que je mets htmlentities sur cette variable rien n'est transmis à ma base.

    Infos complémentaires je teste sur phpmyadmin php version 5.4.3
    Merci de m'aider

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comment ça "rien" ? Une page blanche ?

    Pour ton problème d'origine, tu n'as pas besoin d'utiliser htmlentities pour faire une insertion dans une base de données : il faut utiliser mysql_real_escape_string() si utilises l'ancien pilote mysql_ ou les requêtes préparées si utilises mysqli ou PDO.

    Au passage : Phpmyadmin n'est qu'un script PHP pour gérer les bases de données mysql ; sa version n'a donc pas d'importance.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    chez moi je récupère bien l'affichage avec ton bout de code :
    J'ai &quot;sorti&quot; le &lt;strong&gt;chien&lt;/strong&gt; tout &agrave; l'heure
    J'ai "sorti" le <strong>chien</strong> tout à l'heure
    Ton problème ne se situe pas là. Poste le code de ton formulaire.

    A noter qu'avec UTF-8 htmlentities() n'est plus nécessaire, il suffit d'utiliser htmlspecialchars() pour l'échappement des caractères dangereux à l'affichage. Plus léger.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    chez moi je récupère bien l'affichage avec ton bout de code :

    Ton problème ne se situe pas là. Poste le code de ton formulaire.

    A noter qu'avec UTF-8 htmlentities() n'est plus nécessaire, il suffit d'utiliser htmlspecialchars() pour l'échappement des caractères dangereux à l'affichage. Plus léger.
    1) moi j'ai une page blanche en ne mettant que ce petit bout de code
    il n'y a rien d'autre donc je cherche pourquoi. Rien à voir avec mon formulaire
    Merci

    Citation Envoyé par sabotage Voir le message
    Comment ça "rien" ? Une page blanche ?

    Pour ton problème d'origine, tu n'as pas besoin d'utiliser htmlentities pour faire une insertion dans une base de données : il faut utiliser mysql_real_escape_string() si utilises l'ancien pilote mysql_ ou les requêtes préparées si utilises mysqli ou PDO.

    Au passage : Phpmyadmin n'est qu'un script PHP pour gérer les bases de données mysql ; sa version n'a donc pas d'importance.
    J'utilise pdo et des requêtes préparées. Mais je veux protéger autant que possible les données envoyées.

    Je dois le faire à l'affichage ou quand je mets les données dans ma base de données ?

    Et oui j'ai une page blanche (((

    Je viens d'essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $orig = 'test';
    $a = htmlspecialchars($orig);
    $b = htmlspecialchars($a);
     
    echo $a;
    echo $b;
     
    ?>
    j'ai test d'affiché; mais si je mets 'testé' rien ne s'affiche (((

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Fais un var_dump() plutôt qu'un echo pour voir.
    Essai le paramètre ENT_SUBSTITUTE également.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 14
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Fais un var_dump() plutôt qu'un echo pour voir.
    Essai le paramètre ENT_SUBSTITUTE également.
    si je mets testé sans ENT_SUBSTITUTE
    var_dump me renvoie :
    string '' (length=0)

    string '' (length=0)


    avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $orig = 'testé';
    $a = htmlspecialchars($orig,ENT_SUBSTITUTE);
    $b = htmlspecialchars($a,ENT_SUBSTITUTE);
     
    var_dump( $a); 
    var_dump($b);
    ?>
    j'ai :

    string 'test�' (length=7)

    string 'test�' (length=7)

  7. #7
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    tes scripts sont bien encodés en utf-8 sans BOM ?

Discussions similaires

  1. [PHP 5.2] Problème avec htmlentities
    Par chatlumo dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2011, 22h33
  2. Problème bizarre avec htmlentities
    Par Malabar Design Deb dans le forum Langage
    Réponses: 1
    Dernier message: 16/10/2008, 14h56
  3. [MySQL] Problème avec les htmlentities stockés dans bdd
    Par zouetchou dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/12/2007, 22h01
  4. [Tableaux] Problème avec le signe € et htmlentities
    Par berceker united dans le forum Langage
    Réponses: 6
    Dernier message: 28/12/2006, 15h57
  5. Problème avec htmlentities
    Par Trunks dans le forum Langage
    Réponses: 3
    Dernier message: 09/02/2006, 23h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo