Formulaire sur une seule page

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - Modifié par pijaku le 19/12/2013 à 09:21
enqueteactualite Messages postés 70 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 16 mai 2015 - 18 déc. 2013 à 18:16
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 dimanche 13 janvier 2013 Statut Membre Dernière intervention 17 octobre 2015 1
18 déc. 2013 à 11:51
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 70 Date d'inscription mercredi 11 décembre 2013 Statut Membre Dernière intervention 16 mai 2015 16
18 déc. 2013 à 18: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