Formulaire sur une seule page

parousky Messages postés 325 Date d'inscription   Statut Membre Dernière intervention   -  
enqueteactualite Messages postés 76 Statut Membre -
Bonjour, j'ai créé un formulaire et j'aimerai que quelque chose s'écrive en fonction de ce que va marquer l'utilisateur ( du genre, "le mot de passe entré est erroné").
Alors je dois faire une recherche dans la base de données mais le formulaire doit donc envoyer les données à la page dans laquelle il est écrit... Alors je ne sais pas trop comment écrire ça, voilà ce que j'ai écrit :


<form action="inscription.php" method="get">
<input type="text" class="pseud" name="nom" placeholder="Entrez le pseudo de votre choix" size=40></input>
<input type="password" class="pass" name="mdp" placeholder="Choisissez un mot de passe" size=40></input>
<input type="password" class="retape" name="retapemdp" placeholder="Retapez votre mot de passe" size=40></input>
<input type="text" class="mail" name="mail" placeholder="Entrez votre adresse mail" size=40></input>
<input type="submit" class="valide" value="Valider"></input>
</form>



<?php
$req = $bdd->prepare("SELECT * FROM utilisateur WHERE pseudo=?");
$req->execute(array($_GET['nom'], $_GET['mdp']));
$count = $req->rowCount();




if(empty($_POST['nom']))
{
?>
<p class="entrerpseudo">
Vous n avez pas entré de pseudo !</br>
</p>
<?php
}
if(empty($_GET['mdp']))
{
?>
<p class="entrermdp">
Vous n avez pas entré de mot de passe !
</p>
<?php
}
if(empty($_GET['retapemdp']) AND !empty($_GET['mdp']))
{
?>
<p class="retaper">
Vous n avez entré qu une seule fois votre mot de passe !
</p>
<?php
}
if($_GET['mdp'] !== $_GET['retapemdp'] AND !empty($_GET['retapemdp']))
{
?>
<p class="mdpidentiques">
Les deux mots de passe entrés ne sont pas identiques
</p>
<?php
}

if(!empty($_GET['nom']) AND !empty($_GET['mdp']) AND !empty($_GET['retapemdp']) AND $_GET['mdp'] == $_GET['retapemdp'])
{
if($count == 1)
{
?>
<p class="pseudopris">
Le pseudo est déjà utilisé par un autre membre, </br>veuillez en choisir un autre
</p>
<?php
}
else
{
$reponse = $bdd->prepare('INSERT INTO utilisateur(pseudo, passe) VALUES(?,?)');
$reponse->execute(array($_GET['nom'], $_GET['mdp']));
?>
<p class="enregistre">
Merci, votre inscription est </br> maintenant terminée</br> Vous pouvez fermer cette fenêtre
<?php


}
}



?>


Et ce formulaire est écrit dans la page inscription.php, donc j'envoie les données sur cette même page et les récupère avec une méthode GET.
Mais ça me dit que 'nom', 'mdp' et 'retapemdp' sont non définies, alors qu'ils sont marqués comme nom des trois inputs...
Voyez-vous comment faire ?
Merci d'avance !

1 réponse

kherox Messages postés 131 Date d'inscription   Statut Membre Dernière intervention   1
 
ok
1-separe ton traitement dans un autre fichier :
facile a maintenir et aussi on s'en tres vite lorsque cela est bien organiser.
2*Verification
si tu veut faire une verification dynamique
directement au moment ou l'utlisateur ecrire alors, utilise du javascript.
3*gestion des erreurs

pour une bonne gestion des erreurs , creer toi un tableau dans lequel tu vas mets tes erreurs , facile a recuperer et a traiter
0
enqueteactualite Messages postés 76 Statut Membre 16
 
2. évite le javascript pour des raisons de sécurité

si je désactive javascript cela voudrais dire que je peux posté les données.
0