Problème lors de l’utilisation de password_verify
Résolu
AdrienB1
-
AdrienB1 -
AdrienB1 -
//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
A voir également:
- Problème lors de l’utilisation de password_verify
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Impossible d'utiliser ce numéro de téléphone pour la validation - Forum Gmail
- Impossible de charger les accords de l'utilisateur tv lg - Forum Téléviseurs
- Family link temps d'utilisation ne fonctionne pas - Forum Contrôle parental
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.