Problème lors de l’utilisation de password_verify
RésoluAdrienB1 -
//Code d’inscription include 'config.php'; error_reporting(0); session_start(); if (isset($_SESSION['username'])) { header("Location: index.php"); } if (isset($_POST['submit'])) { $username = htmlspecialchars($_POST['username']); $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $hpassword = password_hash($password, PASSWORD_DEFAULT); $ip = $_SERVER['REMOTE_ADDR']; if ($_POST['password'] == $_POST['cpassword']) { $sql = "SELECT * FROM users WHERE email='$email'"; $result = mysqli_query($conn, $sql); if (!$result->num_rows > 0) { $sql = "INSERT INTO users (username, email, password, ip) VALUES ('$username', '$email', '$hpassword', '$ip')"; $result = mysqli_query($conn, $sql); if ($result) { $erreur = 'Vous êtes désormais inscrit !'; $username = ""; $email = ""; $_POST['password'] = ""; $_POST['cpassword'] = ""; header("Location: index.php"); } else { $erreur = 'Un problème est survenu ...'; } } else { $erreur = 'L\'email existe déjà !'; } } else { $erreur = 'Les mots de passe ne correspondent pas'; } } //Code de connexion, qui ne marche pas include 'config.php'; session_start(); error_reporting(0); if (isset($_SESSION['username'])) { header("Location: welcome.php"); } if (isset($_POST['submit'])) { $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $sql = "SELECT * FROM users WHERE email=$email"; $result = mysqli_query($conn, $sql); $sqlpass = "SELECT password FROM users WHERE email='$email'"; $hpassword = mysqli_query($conn, $sqlpass); if (password_verify($password , $hpassword)) { if (password_verify($password, $hpassword)) { $row = mysqli_fetch_assoc($result); $_SESSION['username'] = $row['username']; $_SESSION['email'] = $row['email']; $_SESSION['rang'] = $row['rang']; header("Location: welcome.php"); } else { $incorrect = "Email et/ou mot de passe incorrect(s)"; } } else { $incorrect = "Email et/ou mot de passe incorrect(s)"; } }
Bonjour,
Malgré m'être renseigné a plusieurs reprises sur Internet sur l'utilisation de password_verify, je ne comprends toujours pas son focntionnement, ou peut-être que les requêtes SQL ne sont pas bonnes.
Pouvez-vous m’aider ?
iPhone / Safari 15.6
- Problème lors de l’utilisation de password_verify
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Impossible d'utiliser l'outil déplacement car la couche de destination est masquée ✓ - Forum Graphisme
- La ressource demandée est en cours d'utilisation - Forum Téléphones & tablettes Android
- Impossible de charger les accords de l'utilisateur tv lg - Forum Téléviseurs
3 réponses
Bonjour,
oulaaaa...
Bon.
Déjà, pas besoin de faire deux requêtes
$sql = "SELECT * FROM users WHERE email=$email"; $result = mysqli_query($conn, $sql); $sqlpass = "SELECT password FROM users WHERE email='$email'"; $hpassword = mysqli_query($conn, $sqlpass);
La première suffit.
Ensuite, il faut faire un fetch de ta requête pour pouvoir récupérer les informations stockées dans ta bdd.
Tu compares ensuite, via password_verify, le mot de passe envoyé par ton formulaire de connexion ( sans aucun traitement dessus ! ) avec le mot de passe (hashé) qui se trouve dans la bdd.
Merci pour votre réponse !
Je ne comprends pas comment utiliser la fonction fetch, malgré la documentation ...
Faut-il mettre une variable dedans ?
De plus, comment stocker dans une variable le mot de passe haché de la base de donnée ?