Bonjour,
Voila je rencontre un petit problème avec mon code.
J'ai crée une rubrique "Inscription" et lorsque l'on clique dessus, une fenête apparaît grâce à un évenement click JavaScript.(un système visibility: visible/hidden)
Dans la fenêtre qui apparaît l'on retrouve : pseudo, mot de passe, email, valider email, etc... ainsi qu'avec des conditions if/else : mail déjà utilisée, les mots de passent ne correspondent pas..etc... seulement mon soucis c'est lorsque je souhaite justement afficher les erreurs ma fenêtre ce ferme et à chaque fois il faut que je reclique sur la rubrique "Inscription" pour que celle-ci s'affiche à nouveau.
Dans mon cas il faudrait que la fenêtre reste ouverte le temps que l'inscription se valide
Voici mon code de ma page d'inscription :
if(isset($_POST['forminscription']))
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$mail_confirmation = htmlspecialchars($_POST['mail_confirmation']);
$mot_de_passe = sha1($_POST['mot_de_passe']);
$confirmation_mot_de_passe = sha1($_POST['confirmation_mot_de_passe']);
if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail_confirmation']) AND !empty($_POST['mot_de_passe']) AND !empty($_POST['confirmation_mot_de_passe']))
{
$pseudolength = strlen($pseudo);
if($pseudolength <= 255)
{
if($mail == $mail_confirmation)
{
if (filter_var($mail, FILTER_VALIDATE_EMAIL))
{
$reqmail = $bdd->prepare("SELECT * FROM membres WHERE mail = ?");
$reqmail->execute(array($mail));
$mailexist = $reqmail->rowCount();
if ($mailexist == 0)
{
if ($mot_de_passe == $confirmation_mot_de_passe)
{
$insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, mot_de_passe) VALUES(?, ?, ?)");
$insertmbr->execute(array($pseudo, $mail, $mot_de_passe)); ?>
<div class="cadre_inscription">
<table>
<tr>
<td><br />
<?php echo '<font color="#0089d3"; font-weight ="bold";>' . "Félicitation ton compte à bien été crée !" . "</font>";?>
</td>
</tr>
</table>
</div>
<?php
}
else
{
$erreur = "Vos mots de passes ne correspondent pas !";
}
}
else
{
$erreur = "Adresse mail déjà utilisée !";
}
}
else
{
$erreur = "Votre adresse mail n'est pas valide !";
}
}
else
{
$erreur = "Vos adresses mail ne correspondent pas !";
}
}
else
{
$erreur = "Votre pseudo dépasse les 255 caractères !";
}
}
else
{
$erreur = "Vous n'avez pas rempli tous les champs !";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/style.css" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<title>Les délices de Gui</title>
</head>
<body>
<!--- <div id="arrierePlan_identifications"></div> --->
<!--- Formulaire d'inscription --->
<div id="inscription">
<form method="POST">
<table>
<tr>
<td>
<br>
<h4>Inscription</h4>
<br>
</td>
</tr>
<tr>
<td>
<label for="pseudo">Pseudo :</label>
</td>
<td>
<input type="text" placeholder="Votre pseudo" id="pseudo" name="pseudo" />
</td>
</tr>
<tr>
<td>
<label for="mail">Mail :</label>
</td>
<td>
<input type="text" placeholder="Votre mail" id="mail" name="mail" />
</td>
</tr>
<tr>
<td>
<label for="mail_confirmation">Confirmation du mail :</label>
</td>
<td>
<input type="text" placeholder="Confirmez votre mail" id="mail_confirmation" name="mail_confirmation" />
</td>
</tr>
<tr>
<td>
<label for="mot_de_passe">Mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Mot de passe" id="mot_de_passe" name="mot_de_passe" />
</td>
</tr>
<tr>
<td>
<label for="confirmation_mot_de_passe">Confirmation mot de passe :</label>
</td>
<td>
<input type="password" placeholder="Confirmez votre mot de passe" id="confirmation_mot_de_passe" name="confirmation_mot_de_passe" />
</td>
</tr>
<tr>
<td></td>
<td id="submit">
<input type="submit" name="forminscription" value="S'inscrire" />
</td>
</tr>
</table>
</form>
<?php
if (isset($erreur))
{
echo '<font color="red";>' . $erreur . "</font>";
}
if (isset($envoie))
{
echo '<font color="green";>' . $envoie . "</font>";
}
?>
</div>
</body>
</html>
Bonjour,
Je ne suis pas spécialiste JS mais je dirais que ce n'est pas un problème de PHP
Sinon, tu peux virer ses htmlspecialschars qui ne servent qu'à l'affichage
Et également passer à password_hash pour encoder les mdp qui beaucoup plus sécurisé que sha1 (et password_verify pour vérifier 2 mdp)
Enfin rowCount ne s'utilisent pas sur un SELECT, utilise plutôt fetchColumn ou directement fetch dans la condition