Varibles d'un formulaire en cas d'erreurs

Eléphanteau du PHP | 12 Messages

17 févr. 2006, 16:15

Salut,

Je desire concevoir un fomulaire dans lequel beaucoup de texte sera entre par l'utilisateur.
Lorsque l'utilisateur valide son formulaire, une verification est faite au niveau des donnees (pas de champs vide, pas de scripts...).
En cas d'erreurs l'utilisateur est renvoye sur la page du formulaire en gardant les donnees correctes qu'il avait entre.

Ma question est, quel est le meilleur moyen pour recuperer la valeur des zones de textes deja entre ?
J'ai apercu sur le net 2 methodes :

1- on passe tout par l'url (c'est la methode que je faisais), mais ici il s'agit d'un formulaire pouvant avoir beaucoup de texte, et je me disais que passait un roman par l'url ce n'etait pas super non ?

2- on passe tout dans des sessions (j'ai vu ca mais ca me parait bizarre).

Quelle est la methode la plus correcte (si y en a d autres allez y) ?

Merci d'avance

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 févr. 2006, 16:44

Au lieu de passer par la méthode URL (GET) fait le avec la méthode POST par le biais du formulaire. Pour récupérer la donnée, il te suffit d'utiliser $_POST['ton_champ'] ;)

Eléphanteau du PHP | 12 Messages

17 févr. 2006, 16:52

Oui mais $_POST['..'] me permet de recuperer mes variables dans la page ou je verifie le formulaire :
j'ai 2 pages php formulaire.php et verif_form.php

Dans formulaire.php il y a le formulaire
et dans verif_form.php il y a la verification des variables $_POST['..'];
Si je detecte une erreur je reviens sur ma page formulaire.php comme ceci :
header('Location: formulaire.php?error=1&champ1='.$_POST['champ1']...);
et dans mon fichier formulaire.php je recupere les valeurs des champs avec la methode $_GET['champ1']

Voila ce que je faisait avant

ViPHP
ViPHP | 3607 Messages

17 févr. 2006, 18:04

Tu peux aussi utiliser des variables sessions:
exemple:
//fichier de test des champs
//Si la valeur saisie est correcte, alors
$_SESSION['mon_champ']=$_POST['mon_champ'];
//sinon
unset($_SESSION['mon_champ']);
//fichier du formulaire
//début du form
//...
<input type="text" name="mon_champ" <?php if (isset($_SESSION['mon_champ'])==TRUE){ echo "value=\"$_SESSION['mon_champ']\"";} ?>
//...
//fin du form
voila je sais pas si je me suis bien expliqué... (ou si j'ai fait des erreurs :oops: )...
sinon hésitez pas :D

Eléphanteau du PHP | 12 Messages

18 févr. 2006, 15:41

Oui je sais bien qu'on peut faire tout ca d'ailleur je l'avais dit, mais je voulais savoir s'il y avait une methode plus rigoureuse que les autres.

Merci :wink: