Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2337 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [resolu]préremplir une case de FORMulaire : probleme avec guillemets

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu]préremplir une case de FORMulaire : probleme avec guillemets

n°1812017
decomposee
Posté le 14-11-2008 à 13:27:53  profilanswer
 

Bonjour.
 
J'ai un script php qui contient un formulaire.
Je souhaite préremplir le formulaire avec des données postales déjà enregistrées.
 
Tout marche bien, sauf si une des données contient le caractère guillemet "
Par exemple, :
 
Si la donnée à préremplir est :
Place "Guillaume Tell"
 
La case de contiendra que :
Place  
 
 
Voici ce que j'utilise :  

echo <input maxlength=\"150\" size=\"80\"  value=\"".$adresse['nom_de_la_rue']."\" name=\"ADR1\">";


 
J'ai essayé addslashes($adresse['nom_de_la_rue'])
 
et le probleme persiste.
 
Je ne comprends pas d'où vient mon erreur.
 
Auriez-vous une idée?
 
merci.


Message édité par decomposee le 14-11-2008 à 14:12:20
mood
Publicité
Posté le 14-11-2008 à 13:27:53  profilanswer
 

n°1812037
FlorentG
Posté le 14-11-2008 à 14:06:14  profilanswer
 

On n'affiche jamais un contenu comme ça, on peut injecter ce qu'on veut. Le problème est pourtant évident, je ne comprend pas sur quoi tu bloque [:petrus dei]
 
Le " sert pour les valeurs d'attributs, donc forcément on ne peut pas en imbriqué, quelque chose du style :

Code :
  1. <machin truc="bidule"super" />


Ca risque pas de fonctionner, tu dois le savoir ;)
 
Donc faut "escaper" les " à l'intérieur (d'ailleurs tout comme les caractères <, > et &, là à mon avis tes scripts sont bourrés de failles de sécurités).
 
La recommendation HTML4 explicite bien ce qu'il faut faire, à savoir remplacer par l'entité correspondante :

Code :
  1. <machin "bidule&quot;super" />


 
En php, la fonction htmlspecialchars permet de faire ça simplement.
 
Et pas besoin d'antislashs comme ça, le mieux est d'imbriquer tes chaînes de caractères dans des simple quotes :

Code :
  1. echo '<input maxlenth="150" size="80" value="', htmlspecialchars($adresse['nom_de_la_rue']), '" name="adr1" />';


 
Aussi y'a pas d'id sur ton input, comment est-il associé à son label ?

n°1812042
decomposee
Posté le 14-11-2008 à 14:12:03  profilanswer
 

Merci.
J'avais bien compris pourquoi ca ne marchait pas, (le guillemet imbriqué), mais je pensais jusqu'il fallait rajouter un slash devant (d'ou mon test avec addslashes).
Merci pour la fonction htmlspecialchars, que je ne connaissais pas.
Je debute.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [resolu]préremplir une case de FORMulaire : probleme avec guillemets

 

Sujets relatifs
Petite loupe dans case d'un tableau no javascriptbien placer un message d'erreur dans un formulaire
Problème IE6, et oui, encore 15% des internautes !!probleme de css avec input
probleme css dans fichier .php[Batch] xcopy et le changement d'heure, problème "à la con" !
Problème avec la dernière version d'EasyPHPProblème de procédure de maj bd, je suis bloqué !!
Pb avec boucles imbriquées pour controle d'un formulaireafficher div en javascript après validation formulaire non validée
Plus de sujets relatifs à : [resolu]préremplir une case de FORMulaire : probleme avec guillemets


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR