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 :

Difficultés avec htmspecialchars


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 87
    Points
    87
    Par défaut Difficultés avec htmspecialchars
    Bonjour à tous,

    J'ai un formulaire qui envoie des données avec la méthode POST. Je prend soin d'utiliser htmlspecialchars() pour traiter les (') et les (") de mes chaînes avant de les inclure dans ce formulaire.

    Quand j'examine le code source de ce formulaire tel qu'il s'affiche dans mon navigateur, j'ai par ex. :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form class="noprint" action="./ajouter.php" method="post">
        <input class=ajouter type=submit value="Modifier cette activité">
        <input type=hidden name="action" value="2">
        <input type=hidden name="id_activite" value="37">
        <input type=hidden name="titre" value="2e Salon du &quot;Développement Durable&quot; à Méry-Tilff">

    (etc.)

    Je récupère la donnée "titre" avec le script ajouter.php gràce à

    $titre=$_POST['titre'];

    et je la teste immédiatement avec

    echo "<!-- $titre -->\n";

    et quand je récupère le code html de cette page, je trouve

    <!-- 2e Salon du \"Développement Durable\" à Méry-Tilff -->

    Pourrait-on m'expliquer pourquoi les entités html ont été reconverties en guillemets précédés d'un \ ?

    Le problème se pose de la même manière avec les (<) (>) et (').

    Meci d'avance,

    G.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Tout d'abord merci d'utiliser les balises [code] pour clarifier le message

    Ensuite regarde dans ton phpinfo() ou dans ton php.ini si tu magic_quotes_gpc à on. Je pense que ça vient de là.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Mr N.
    Tout d'abord merci d'utiliser les balises [code] pour clarifier le message
    j'y penserai, merci de le rappeler

    Citation Envoyé par Mr N.
    Ensuite regarde dans ton phpinfo() ou dans ton php.ini si tu magic_quotes_gpc à on. Je pense que ça vient de là.
    J'avais regardé de ce coté-là, mais je ne comprend pas ce qui se passe ; phpinfo donne ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    magic_quotes_gpc On On 
    magic_quotes_runtime Off Off 
    magic_quotes_sybase Off Off
    Ces fonctions ne devraient avoir pour effet que d'ajouter un antislash devant certains caractères (c'est bien le cas), mais je ne trouve rien dans la doc qui m'explique pourquoi les entités html sont retranscrites. C'est peut-être un problème qui relève plus du protocole http que de php.

    Je cherche toujours, mais pour l'instant, je cale.

    G.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Si tu peux (en fonction de ton serveur de prod), désactive magic_quotes_gpc.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre = stripslashes($titre);

Discussions similaires

  1. [SSIS][2k5]Difficulté avec SSIS
    Par david71 dans le forum SSIS
    Réponses: 9
    Dernier message: 05/01/2006, 19h28
  2. [JS] Difficulté avec le onmouseover...
    Par Pleymo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/11/2005, 12h09
  3. [VBA] difficultés avec une requête INSERT
    Par elias dans le forum Access
    Réponses: 7
    Dernier message: 06/09/2005, 14h53
  4. Difficultés avec - onchange - !
    Par zakuli dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/07/2005, 12h00
  5. Difficultés avec TMenuItem.OnDrawItem
    Par ybruant dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/01/2005, 11h07

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