Bonjour à tous,

Dans le cadre de mes études en informatique, je dois créer un petit site web en HTML et inclure un formulaire en HTML avec sa base de donnée en MySQL.

J'ai déjà créer le code PHP pour l'inscription, cela fonctionne correctement. Les utilisateurs renseignés sont correctement enregistrer dans la base de donnée.

J'ai créer le code PHP pour la connexion aux compte utilisateur sur le site web mais j'ai un problème.

Après avoir cliquer sur le bouton connexion sur mon site, les utilisateurs ne sont pas retrouver dans la base de donnée, j'ai le message dans le navigateur suivant : Nom d'utilisateur ou mot de passe incorrect.
Pourtant, je retrouve l'adresse mail et le mot de passe de l'utilisateur dans la base de donnée.
J'ai vérifier plusieur fois mais il n'y a pas d'erreur dans les identifiants.

Voici le code :
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
 <?php
 
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
 
// Vérifie si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Connexion à la base de données (remplacez les valeurs par les vôtres)
    $servername = "localhost";
    $username = "user_admin";
    $password = "admin";
    $dbname = "client_mybase";
 
    // Créer une connexion
    $conn = new mysqli($servername, $username, $password, $dbname);
 
    // Vérifier la connexion
    if ($conn->connect_error) {
        die("La connexion a échoué : " . $conn->connect_error);
    }
 
    // Récupérer les valeurs du formulaire
    $user_email = $_POST['email'];
    $user_password = $_POST['password']; // Utilisation d'un nom de variable différent
 
 
    // Requête SQL pour vérifier l'utilisateur
    // Utilisation de la préparation de requête pour éviter les injections SQL
    $sql = "SELECT * FROM users WHERE email=? AND password=?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ss", $email, $user_password);
    $stmt->execute();
    $result = $stmt->get_result();
 
    // Vérifier si l'utilisateur existe dans la base de données
    if ($result->num_rows > 0) {
        // L'utilisateur est authentifié avec succès
        echo "Connexion réussie ! Bienvenue, $email.";
    } else {
        // L'utilisateur n'est pas trouvé ou les informations sont incorrectes
        echo "Nom d'utilisateur ou mot de passe incorrect.";
    }
 
    // Fermer la connexion à la base de données
    $stmt->close();
    $conn->close();
}
?>
Je ne trouve pas ce qui ne va pas dans le code php, est-ce que quelqu'un aurait une idée ?

Merci beaucoup.