Page d'inscription
- Accueil
- Forum
- Programmation
- PHP
- Page d'inscription
mikada Le 7 mai 2018 à 08:20 (Édité le 25 janvier 2019 à 17:54)
Lorsque j’exécute le code, le champ mdp et statut s’effaceet j’obtiens « le message « tous les champs doivent être complètés »
J’ai apporté les modifications suivantes au code de base duforum :
J’ai changé l’ordre des champs, rajouté un champ statut, etmis une condition pour la longueur du mdp <5 >20
Ordre : Pseudo, mdp, mdp2, mail, mail2, statut,
Pouvez-vous m’aider à résoudre mon problème ?
Salutations.
<?php
/* Connexionau serveur : dans ce cas, en local */
$bdd = new PDO('mysql:host=localhost;dbname=espace_membre','root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]);
/* Si leformulaire est envoyé */
if(isset($_POST['forminscription']))
{
/* Récupération des variables issues duformulaire*/
$pseudo = htmlspecialchars($_POST['pseudo']);
$mdp = sha1($_POST['mdp']);
$mdp2 = sha1($_POST['mdp2']);
$mail = htmlspecialchars($_POST['mail']);
$mail2 = htmlspecialchars($_POST['mail2']);
$statut =htmlspecialchars($_POST['statut']);
/* 1 Teste l'existence les données post envérifiant qu'elles existent*/
if(!empty($_POST['pseudo']) AND !empty($_POST['mdp']) AND!empty($_POST['mdp2']) AND !empty($_POST['mail']) AND
!empty($_POST['mail2'])AND !empty($_POST['statut']))
{
/* 2 Teste si $pseudo est compris entre 5et 20 */
if(strlen($pseudo) < 5 or strlen($pseudo) > 20)
{
/*requette préparée pour vérifier si lePSEUDO existe*/
$reqpseudo = $bdd->prepare("SELECT * FROM membres WHERE pseudo =?");
$reqpseudo->execute(array($pseudo));
/*Compte le nb de pseudo*/
$pseudoexist = $reqpseudo->rowCount();
/* 3 nb = 0 on continue*/
if($pseudoexist == 0)
{
/* 4 Teste si les 2 mdp sont égaux*/
if($mdp == $mdp2)
{
/*requette préparée pour vérifier sile mdp existe*/
$reqmdp = $bdd->prepare("SELECT * FROM membres WHERE motdepasse= ?");
$reqmdp->execute(array($mdp));
/*Compte le nb de mdp*/
$mdpexist = $reqmdp->rowCount();
/* 5 nb = 0 on continue*/
if($mdpexist == 0)
{
/*Teste si les 2 mails sont égaux*/
if($mail == $mail2)
{
/* 6 Teste si l'adresse est valide*/
if(filter_var($mail, FILTER_VALIDATE_EMAIL))
{
/*requette préparée pour vérifiersi le mail existe*/
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail =?");
$reqmail->execute(array($mail));
/*Compte le nb de mail*/
$mailexist = $reqmail->rowCount();
/* 7 nb = 0 on enregistre*/
if($mailexist == 0)
{
/*Requette préparée*/
$insertmbr = $bdd->prepare("INSERTINTO membres(pseudo, motdepasse, mail, statut) VALUES(?, ?, ?, ?)");
$insertmbr->execute(array($pseudo, $mdp, $mail, $statut));
$erreur = "Votre comptea bien été créé ! <ahref=\"connexion.php\">Me connecter</a>";
}
else
{
/* 7 */ $erreur ="Vos mots de passes ne correspondent pas !";
}
}
else
{
/* 6 */ $erreur ="Adresse mail déjà utilisée !";
}
}
else
{
/* 5 */ $erreur = "Votreadresse mail n'est pas valide !";
}
}
else
{
/* 4 */$erreur = "Vos adressesmail ne correspondent pas !";
}
}
else
{
/* 3 */ $erreur = "Votre pseudoexiste déja !";
}
}
else
{
/* 2 */ $erreur = "Votre pseudodoit etre compris entre 5 et 20 !";
}
}
else
{
/* 1 */ $erreur = "Tous les champsdoivent être complétés !";
}
}
}
?>
mikada Le 13 mai 2018 à 20:34 (Édité le 1 janvier 1970 à 01:00)
Personne pour m'aider ? C'est bien dommage.
Salutations
DarkSkyline Le 14 mai 2018 à 20:39 (Édité le 14 mai 2018 à 20:40)
Je passe a expliquer pour tester cela après ce code-ci:
$pseudo = htmlspecialchars($_POST['pseudo']);
var_dump($pseudo);
Donc maintenant tu execute ton script et tu teste,
Si c'est à cause des POST que les variables son vide vérifie ton code html.
Si ce n'est pas ça répond que je vérifie ton code avec un peut plus de temps 😀