Bonjour,
Je me suis lancé dans la création d'un espace membre d'un petit site, pour un projet universitaire.
Suite aux conseils d'un membre du forum, j'ai recommencé mes pages car j'utilisais encore mysql_query ; obsolète à l'heure actuelle...
Je vous présente le contexte :
Ma page register fonctionne parfaitement, je crée un user, et il figure bien dans la base de donnée.
Le problème se situe sur la page de connexion ; lorsque j'essaie de me loggué rien ne se passe, il me recharger la même page connexion... je ne sais pas pourquoi.
Pourtant j'ai bien hashé les deux mots de passes, pour moi le problème vient de la connexion à la base ou de me requête, mais j'ai l'impression que c'est sont correctes.
Voici les codes :
register.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php session_start(); include('include/config.php'); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>Bienvenue | FIFA Tournament 2015</title> <link href="css/style.css" rel="stylesheet" type="text/css" media="screen"> </head> <body> <div id="main"> <div id="top"> <img src="images/fifa.jpg" class="image_principale" alt="fifa15" /> </div> <nav> <?php if (isset ($_SESSION['log'])){ include 'menu_co.php'; } else { include 'menu_deco.php'; } ?> </nav> <div id="site_content" style="height:300px"> <h1 style='color:#09D4FF'>S'inscrire</h1> <div class="content" style='height:300px;text-align:left'> <?php if (isset($_POST['submit'])) { $login = htmlentities(trim($_POST['login'])); $mdp = htmlentities(trim($_POST['mdp'])); $repeatmdp = htmlentities(trim($_POST['repeatmdp'])); $email = htmlentities(trim($_POST['email'])); if ($login && $mdp && $repeatmdp && $email) { $req = $bdd->prepare('SELECT * FROM users WHERE login = :login'); $req->execute(array('login'=> $login)); $resultat=$req->fetch(); //Vérification si pseudo déjà crée if(!$resultat) { $req = $bdd->prepare('SELECT * FROM users WHERE email = :email'); $req->execute(array('email'=> $email)); $resul=$req->fetch(); //Vérification si mail déjà utilisé if(!$resul) { if(strlen($login) >= 4) { if (strlen($mdp) >= 4) { if ($mdp == $repeatmdp) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { // Hachage du mot de passe $mdp = sha1($_POST['mdp']); //$login = $_POST['login']; $req = $bdd->prepare('INSERT INTO users(login, mdp, email) VALUES(:login, :mdp, :email)'); $req->execute(array( 'login' => $login, 'mdp' => $mdp, 'email' => $email)); header('Location:connexion.php'); }else echo "Veuillez saisir une adresse mail correcte"; }else echo "Les mots de passe doivent correspondre"; }else echo "Mot de passe trop court (au moins 4 caractères)"; }else echo "Pseudo trop court (au moins 4 caractères)"; }else echo "L'adresse mail renseigné est déjà utilisée"; }else echo "Pseudo déjà utilisé"; }else echo "Veuillez saisir tous les champs !"; } ?> <form method="post" action="register.php"> <label style="color:white"> Pseudo :</label><input style="background-color:#8CC6D7"; type = "text" name = "login" /> <br/><br/> <label style="color:white"> Mot de passe :</label><input style="background-color:#8CC6D7"; type="password" name="mdp"/> <br/><br/> <label style="color:white"> Confirmation du mot de passe :</label><input style="background-color:#8CC6D7"; type="password" name="repeatmdp"/> <br/> <br/> <br/> <label style="color:white"> Adresse e-mail :</label><input style="background-color:#8CC6D7"; type="email" name="email"/> <br/><br/> <input style="background-color:#8CC6D7; margin-top:20px; font-weight:bold" type="submit" value="S'inscrire" name="submit"/> </form> </div> <footer> Copyright © Nico'Création Web | Mentions légales | Tous droits réservés. </footer> </div> </body> </html>
connexion.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php session_start(); include('include/config.php'); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>Bienvenue | FIFA Tournament 2015</title> <link href="css/style.css" rel="stylesheet" type="text/css" media="screen"> </head> <body> <div id="main"> <div id="top"> <img src="images/fifa.jpg" class="image_principale" alt="fifa15" /> </div> <nav> <?php if (isset ($_SESSION['log'])){ include 'menu_co.php'; } else { include 'menu_deco.php'; } ?> </nav> <div id="site_content" style="height:150px"> <h1 style='color:#09D4FF'>Connexion</h1> <div class="content" style='height:150px;text-align:left'> <?php if (isset($_POST['submit'])) { $login = htmlentities(trim($_POST['login'])); $mdp = htmlentities(trim($_POST['mdp'])); if ($login && $mdp) { // Hachage du mot de passe $mdp = sha1($_POST['mdp']); // Vérification des identifiants $req = $bdd->prepare('SELECT id FROM users WHERE login = :login AND mdp = :mdp'); $req->execute(array( 'login' => $login, 'mdp' => $mdp)); $resultat = $req->fetch(); if (!$resultat) { echo 'Mauvais identifiant ou mot de passe !'; } else { session_start(); $_SESSION['id'] = $resultat['id']; $_SESSION['login'] = $login; header('Location:index.php'); } } } ?> <form method="post" action="connexion.php"> <label style="color:white"> Pseudo :</label><input style="background-color:#8CC6D7"; type = "text" name = "login" /> <br/><br/> <label style="color:white"> Mot de passe :</label><input style="background-color:#8CC6D7"; type="password" name="mdp"/> <br/><br/> <input style="background-color:#8CC6D7; margin-top:20px; font-weight:bold" type="submit" value="Connexion"/> </form> </div> <footer> Copyright © Nico'Création Web | Mentions légales | Tous droits réservés. </footer> </div> </div> </body> </html>
Partager