Eviter d'entrer plusieurs fois les données.

Fermé
shoub-tcy Messages postés 169 Date d'inscription mardi 6 mars 2012 Statut Membre Dernière intervention 23 mai 2012 - 14 mars 2012 à 01:58
 Bhurigan - 14 mars 2012 à 02:14
Bonjour,

J'ai créé un formulaire d'incription, mais le problème est que si l'utilisateur a correctement rempli son pseudo et son prénom, mais qu'il a oublié par exemple son E-Mail, la page va donc se recharger avec un texte en rouge "L'E-Mail DOIT être rempli", mais le rafraîchissement de la page va effacer tous les champs, et l'utilisateur est bon pour RE-remplir ses nom et prénom. Donc pour eviter à l'utilisateur de re-remplir ces informations, j'ai d'abord pensé à rajouter par exemple sur la ligne du Nom value=<?php echo $_POST['nom'];?> mais une erreur apparait :

-( ! ) Notice: Undefined index: pseudo in C:\Program Files\wamp\www\Site\Page3\page3.php on line 26

Voici une partie de mon formulaire :

<form method="post" action="identification.php">
<p> <label for="pseudo">Votre Pseudo</label> : <input type="text" name="pseudo" id="pseudo" maxlength="20" autofocus required /> <p>
<p> <label for="password">Votre mot se passe</label> : <input type="password" name="password" id="password" maxlength="25" required/><br />
<p><input type="submit" value="Envoyer">input></p>

Donc si vous avez une solution, n'hésitez pas à me la faire parvenir.

2 réponses

en php tu peux utiliser les sessions ... et y enregistrer ce qui a déjà été saisi...

ou tu peux utiliser des libraires javascript jquery mootools ... qui te permettent lors de la saisie d'avoir des validations, lorsque toute les conditions sont réunies tu envois le bouzin au traitement ...
0
Bonsoir, normal qu'il ne soit pas définit si votre formulaire se trouve sur une page différente de la page identification.php .

Séparez bien le traitement du visuel, le html en l'occurrence un formulaire de son traitement.

Avec action='identification.php' vous définissez la cible auquel sont envoyées les données $_POST .
Donc en cas d'échec et si c'est une page différente il faut renvoyer les informations en $_GET avec une réécriture dans l'url via la fonction header();

Qui plus est vous devez faire un test pour savoir si c'est le cas(renvoi des informations remplies) et le cas échéant les afficher dans l'attribut value, ne pas mettre l'attribut value si ce n'est pas le cas.
Si vous faites un envoi de données en POST via la même page c'est pas très pratique mais vous devez avant tout vérifier que la variable existe et est remplie avant de pouvoir l'afficher(qui comme prouve votre exemple sinon provoquera une erreur: afficher une variable qui n'existe pas).
Vous pouvez aussi utiliser les variables session plutôt que la réécriture dans l'url pour 'simuler' un envoi en GET, bien sûr il faut tester quand même leur existence.
0