Bonjour,
j'ai un (des) souci(s) avec mon code,
lorsque j'entre un mail dans mon formulaire d'inscription (code n°1) j'ai bien le message comme quoi l'adresse mail est déjà utilisée mais ça s'inscrit quand même dans la table Mysql, idem pour le mot de passe, j'ai bien le message qui me dit que les 2 mots de passe ne sont pas identique mais ça s'inscrit aussi dans la table ... le but est justement de ne pas inscrire la personne si les 2 mots de passe ne correspondent pas ou si l'email est déjà utilisé.
Par contre le message "Inscription prise correctement en compte" ne s'affiche pas quand "j'inscris" un utilisateur sauf dans le code 2.
Dans le code n°2, par contre là aucun message ne s'affiche (ni "Les mots de passe ne sont pas identiques" et ni "Cette adresse email est déjà utilisée") sauf ici "Inscription prise correctement en compte" mais tout s'enregistre quand même dans la table que les email sont identiques ou pas et même si les 2 mots de passe ne correspondent pas. Dans le code 2 j'ai rajouté
header('location: index.php?success=1');
après l'envoi de la requête dans la db et c'est ça qui pose problème mais là je sèche.
Voici le code 1 avec le message ("Les mots de passe ne sont pas identiques" et "Cette adresse email est déja utilisée")
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
| <?php
require('src/connection.php');
if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_confirm']))
{
$pseudo = $_POST['pseudo'];
$email = $_POST['email'];
$password = $_POST['password'];
$password_confirm = $_POST['password_confirm'];
if($password != $password_confirm){
header('location: index.php?error=1&pass=1');
}
$req = $db->prepare("SELECT count(*) as numberEmail FROM users WHERE email = ?");
$req->execute(array($email));
while($email_verification = $req->fetch()){
if($email_verification['numberEmail'] != 0){
header('location: index.php?error=1&email=1');
}
}
$secret = sha1($email).time();
$secret = sha1($secret).time() .time();
$password = "aq1" .sha1($password."7962629")."25";
$req = $db->prepare("INSERT INTO users(pseudo, email, password, secret) VALUES (?, ?, ?, ?)");
$req->execute(array($pseudo, $email, $password, $secret));
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
<link rel="stylesheet" type="text/css" href="design/default.css">
</head>
<body>
<header>
<h1>INSCRIPTION</h1>
</header>
<div class="container">
<p id="info">
Bienvenue
<a href="connection.php">Connectez-vous</a>
</p>
<?php
if(isset($_GET['error'])){
if (isset($_GET['pass'])) {
echo '<p id="error">Les mots de passe ne sont pas identiques.</p>';
}
else if (isset($_GET['email'])) {
echo '<p id="error">Cette adresse email est déja utilisée.</p>';
}
}
else if (isset($_GET['success'])) {
echo '<p id="success">Inscription prise correctement en compte.</p>';
}
?>
<div id="form">
<form method="post" action="index.php">
<table>
<tr>
<td>Pseudo</td>
<td><input type="text" name="pseudo" placeholder="Ex: Nicolas" required></td>
</tr>
<tr>
<td>Email</td>
<td><input type="email" name="email" placeholder="exemple@google.com" required></td>
</tr>
<tr>
<td>Mot de passe</td>
<td><input type="password" name="password" placeholder="Ex: ********" required></td>
</tr>
<tr>
<td>Retaper le mot de passe</td>
<td><input type="password" name="password_confirm" placeholder="Ex: ********" required></td>
</tr>
</table>
<div id="button">
<button>Inscription</button>
</div>
</form>
</div>
</div>
</body>
</html> |
Voici le code n°2 avec que le message "Inscription prise correctement en compte" qui s'affiche lors de l'inscription d'un utilisateur sans les 2 messages d'erreur mot de passe et email.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
| <?php
require('src/connection.php');
if (!empty($_POST['pseudo']) && !empty($_POST['email']) && !empty($_POST['password']) && !empty($_POST['password_confirm']))
{
$pseudo = $_POST['pseudo'];
$email = $_POST['email'];
$password = $_POST['password'];
$password_confirm = $_POST['password_confirm'];
if($password != $password_confirm){
header('location: index.php?error=1&pass=1');
}
$req = $db->prepare("SELECT count(*) as numberEmail FROM users WHERE email = ?");
$req->execute(array($email));
while($email_verification = $req->fetch()){
if($email_verification['numberEmail'] != 0){
header('location: index.php?error=1&email=1');
}
}
$secret = sha1($email).time();
$secret = sha1($secret).time() .time();
$password = "aq1" .sha1($password."7962629")."25";
$req = $db->prepare("INSERT INTO users(pseudo, email, password, secret) VALUES (?, ?, ?, ?)");
$req->execute(array($pseudo, $email, $password, $secret));
header('location: index.php?success=1'); // Le problème vient il d'ici ?
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>TEST</title>
<link rel="stylesheet" type="text/css" href="design/default.css">
</head>
<body>
<header>
<h1>INSCRIPTION</h1>
</header>
<div class="container">
<p id="info">
Bienvenue
<a href="connection.php">Connectez-vous</a>
</p>
<?php
if(isset($_GET['error'])){
if (isset($_GET['pass'])) {
echo '<p id="error">Les mots de passe ne sont pas identiques.</p>';
}
else if (isset($_GET['email'])) {
echo '<p id="error">Cette adresse email est déja utilisée.</p>';
}
}
else if (isset($_GET['success'])) {
echo '<p id="success">Inscription prise correctement en compte.</p>';
}
?>
<div id="form">
<form method="post" action="index.php">
<table>
<tr>
<td>Pseudo</td>
<td><input type="text" name="pseudo" placeholder="Ex: Nicolas" required></td>
</tr>
<tr>
<td>Email</td>
<td><input type="email" name="email" placeholder="exemple@google.com" required></td>
</tr>
<tr>
<td>Mot de passe</td>
<td><input type="password" name="password" placeholder="Ex: ********" required></td>
</tr>
<tr>
<td>Retaper le mot de passe</td>
<td><input type="password" name="password_confirm" placeholder="Ex: ********" required></td>
</tr>
</table>
<div id="button">
<button>Inscription</button>
</div>
</form>
</div>
</div>
</body>
</html> |
Partager