|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre confirmé
![]() ![]() Vivian PennelDeveloppeur Symfony | JSF/Seam Inscription : août 2004 Messages : 173 ![]() |
Bonjour,
Je poste ici car je suis actuellement en train de développer une application en PHP et j'ai un soucis pour afficher des données (provenant d'une base de données MySQL) en valeur par défaut d'un formulaire. (Précision je travaille en PHP4 et MySQL 3) L'opération se déroule de la façon suivante : Je récupère les données de la base de données et les mémorise dans un tableau associatif (avec mysql_fetch_assoc), la requête étant ciblée sur un identifiant il n'y a qu'un seul tuple en résultat. J'affiche ensuite des formulaires qui doivent être pré-rempli par les valeurs de la base de données Et.. pour certains les données s'afichent bien, d'autre non juste un caractère "<" qui s'affiche a l'intérieur (voir screenshot) J'ai afficher le tableau avec un print_r, toute les données nécessaire sont bien dedans, j'ai ensuite fait un copier/coller d'un echo $data['nomduchamp'] qui marche pas hors du formulaire, la donnée s'affiche correctement . J'en déduis que le probleme vient du formulaire, mais les premiers fonctionnent pourtant très bien .. Voici le code d'un formulaire qui marche Code :
Code :
Code :
![]() Si vous avez une solution |
||||||
|
00
|
|
|
#2 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
pour mettre les valeurs dans les champs, tu dois utiliser ce qui est expliqué ici :
http://php.developpez.com/faq/?page=...rite-failleXSS
__________________
Modérateur PHP |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() ![]() Vivian PennelDeveloppeur Symfony | JSF/Seam Inscription : août 2004 Messages : 173 ![]() |
J'ai pas vaiment compris le rapport avec mon problème sur ce coup.
Si jamais, les données qui doivent être affichée ne peuvent pas contenir de caractères spéciaux, elles sont vérifiées lors d'une saisie Donc les données à afficher sont de simple chaine de caractère alphanumérique. |
|
00
|
|
|
#4 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
A priori, tes données contiennent pourtant parfois des guillemets, ce qui "coupe" le code HTML.
Ce que t'indique mathieu c'est de "proteger" le texte afficher par htmlspecialchars() ou htmlentities() ce qui permet à la fois a l'utilisateur de saisir des guillemets et à toi de les affichier. |
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() ![]() Vivian PennelDeveloppeur Symfony | JSF/Seam Inscription : août 2004 Messages : 173 ![]() |
Ben justement non elles ne contiennent pas de guillemet.
Dans le doute j'ai tout de même vérifié les données en clair via phpmyadmin, et il n'y a aucun caractère de ce genre nulle part. D'autre part j'utilise déjà htmlentities() et addslashes() lorsque je récupère les données après une saisie. Du coup je suis un peu perdu Edit : toujours dans le doute et parce que ca coûte pas grand chose j'ai recollé un Code :
htmlentities($string,ENT_QUOTES,'ISO-8859-1') |
|
00
|
|
|
#6 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Est-ce qu'on pourrait voir le code de la partie qui pose probleme et son resultat html ?
|
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() ![]() Vivian PennelDeveloppeur Symfony | JSF/Seam Inscription : août 2004 Messages : 173 ![]() |
Bon je viens relire en détail tout le code de la page, et au final je suis un boulet
.Juste avant que les formulaires ne commence a ne plus s'afficher correctement j'ai en fait un appel à la base de données pour créer une liste à partir d'une table... sauf que la variable qui reçoit la liste n'est autre que celle qui contenait le tableau de données .. Bon ben voilà désolé du dérangement :/ |
|
00
|
Copyright © 2000-2012 - www.developpez.com