Bonsoir à tous,
Pour la faire courte, il m'est demander de récupérer via un formulaire (login.php / méthode = post),
1) Vérifier si le pseudo entré est compris dans ma BDD -> Members -> pseudo. Si pas, afficher une erreur !
2) Vérifier si le mot de passe entré correspond à celui du user entré en pseudo. Si pas, afficher une erreur!
3) Si le mot de passe et le pseudo sont corrects, direction --> profile.php?pseudo="user".
J'ai essayé plusieurs manière mais mon code ne fonctionne malheureusement pas, quelqu'un pourrait-il me donner des conseils ou de l'aide ?
Merci
Login.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 <?php require ('function.php'); // Si les champs du formulaire contiennent qqchose if(isset($_post['pseudo']) && isset($_post['password'])){ //On nettoie les variables pour eviter les injections $user = sanitize($_POST['pseudo']); $pw = sanitize($_POST['password']); try{ $query = $pdo->prepare("SELECT * FROM members where pseudo = ?"); $query->execute(array($_POST['pseudo'])) or die ('erreur pseudo'); $smt = $query->fetch(); } catch(Exception $e) { die("Connexion à la base de donnée impossible !"); } $_SESSION['login'] = $smt['pseudo']; $_SESSION['pass'] = $smt['password']; if($_SESSION['login']->rowCount() == 0){ $error = "Le pseudo '$user' n'existe pas ! Inscrivez-vous"; } else { if($pw === $_SESSION['pass']){ redirect("profile.php?pseudo={$_SESSION['pseudo']}"); } else{ $error = "Mauvais mot de passe !"; } } } ?> <!DOCTYPE html> <html> <head> <title>Log In</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="styles.css" rel="stylesheet" type="text/css"/> </head> <body> <div class="title">Log In</div> <div class="menu"> <a href="index.php">Home</a> <a href="signup.php">Sign Up</a> </div> <div class="main"> <form action="login.php" method="post"> <table> <tr> <td>Pseudo:</td> <td><input id="pseudo" name="pseudo" type="text" value=""></td> </tr> <tr> <td>Password:</td> <td><input id="password" name="password" type="password" value=""></td> </tr> </table> <input type="submit" value="Log In"> </form> <?php if(isset($error)){ echo "<div class='errors'><br>$error</div>"; } ?> </div> </body> </html>
function.php
Et pour terminer, ma base de données.
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 <?php //variables de connexion $host = "localhost"; $dbname= "my_social_network_base"; $user = "root"; $pw = "root"; try{ $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", "$user", "$pw"); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (Exception $exc){ die("Erreur lors de l'accès à la base de données."); } function sanitize($var){ $var = stripslashes($var); $var = strip_tags($var); $var = htmlspecialchars($var); } function redirect($url, $statusCode = 303){ header("Location : ' . $url, true, $statusCode'"); die(""); } ?>
![]()
Partager