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
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>
2 réponses
Dac merci du conseil ;)