Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2008, 11h08   #1
Membre confirmé
 
Avatar de Vivian Pennel
 
Vivian Pennel
Developpeur Symfony | JSF/Seam
Inscription : août 2004
Messages : 173
Détails du profil
Informations personnelles :
Nom : Vivian Pennel
Âge : 23
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Developpeur Symfony | JSF/Seam
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2004
Messages : 173
Points : 246
Points : 246
Par défaut Affichage de données dans les champs

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 :
1
2
<label>Telephone : </label><input name="tel" type="text" value="<?php echo $data['telephone']?>" />
				<?php echo $tel_non_valide,$tel_vide;?>
Et le code d'un formulaire ne fonctionnant pas( affichant "<")
Code :
1
2
<label>Propriétaire du lieu : </label><input name="prop_lieu" type="text" value="<?php echo $data['proprietaire_lieu']?>" />
				<?php echo $prop_lieu_non_valide,$prop_lieu_vide; ?>
Globalement voici le code d'un fieldset complet ne fonctionnant pas
Code :
1
2
3
4
5
6
7
8
9
10
11
<fieldset>
		<legend>Elements juridiques</legend>
			<p>
				<label>Propriétaire du lieu : </label><input name="prop_lieu" type="text" value="<?php echo $data['proprietaire_lieu']?>" />
				<?php echo $prop_lieu_non_valide,$prop_lieu_vide; ?>
				<br /><label>Nom de la structure gestionnaire : </label><input name="nom_str_ges" type="text" value="<?php echo $data['nom_structure_gestionnaire']?>" />
				<?php echo $nom_str_ges_non_valide,$nom_str_ges_vide; ?>
				<br /><label>Statut de la structure gestionnaire : </label><input name="statut_str" type="text" value="<?php echo $data['statut_str']?>" />
				<?php echo $statut_str_non_valide,$statut_str_vide;?>
			</p>
	</fieldset>
et le screenshot du résultat :


Si vous avez une solution
Vivian Pennel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 11h30   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 12h06   #3
Membre confirmé
 
Avatar de Vivian Pennel
 
Vivian Pennel
Developpeur Symfony | JSF/Seam
Inscription : août 2004
Messages : 173
Détails du profil
Informations personnelles :
Nom : Vivian Pennel
Âge : 23
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Developpeur Symfony | JSF/Seam
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2004
Messages : 173
Points : 246
Points : 246
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.
Vivian Pennel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 13h48   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
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.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 13h51   #5
Membre confirmé
 
Avatar de Vivian Pennel
 
Vivian Pennel
Developpeur Symfony | JSF/Seam
Inscription : août 2004
Messages : 173
Détails du profil
Informations personnelles :
Nom : Vivian Pennel
Âge : 23
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Developpeur Symfony | JSF/Seam
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2004
Messages : 173
Points : 246
Points : 246
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')
lors de l'affichage, le problème est toujours le même.
Vivian Pennel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 13h59   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Est-ce qu'on pourrait voir le code de la partie qui pose probleme et son resultat html ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 14h04   #7
Membre confirmé
 
Avatar de Vivian Pennel
 
Vivian Pennel
Developpeur Symfony | JSF/Seam
Inscription : août 2004
Messages : 173
Détails du profil
Informations personnelles :
Nom : Vivian Pennel
Âge : 23
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Developpeur Symfony | JSF/Seam
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2004
Messages : 173
Points : 246
Points : 246
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 :/
Vivian Pennel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h27.


 
 
 
 
Partenaires

Hébergement Web