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
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("");
}
?>
Et pour terminer, ma base de données.
Nom : Captue.PNG
Affichages : 158
Taille : 36,7 Ko