Je ne sais pas pourquoi cela ne fonctionnera pas.La connexion PHP ne fonctionne pas. Utiliser password_verify et il semble causer quelques problèmes
login.php
$email = $_POST['email];
$password = $_POST['password];
$validEmail = filter_var($email, FILTER_VALIDATE_EMAIL);
$getpassword = $connect->query("SELECT password FROM users WHERE email = '$validEmail'");
$row = $getpassword->fetch_assoc();
Tous les travaux ci-dessus bien. Je reçois le mot de passe auquel l'email est connecté, afin que je puisse "vérifier" le mot de passe.
$passVarify = password_varify($password, $row['password']);
Lorsque je tente de "echo" out ou utiliser "var_dump"/"print_r" sur "$ passVerify", il montre que le chiffre "1"? Après avoir vérifié le mot de passe, j'exécute une autre requête, de sorte que je puisse obtenir le "userid" et les "privilèges". J'avais besoin de "déchaîner" ou de rendre le mot de passe "normal" à nouveau, afin que je puisse faire la requête ci-dessous.
$result = $objConnection->query("SELECT userid, privileges FROM users WHERE email = '$validEmail' && password = '$passVarify'");
Le code ci-dessous ne semble pas répondre à la requête? Cela ne fonctionne tout simplement pas pour une raison quelconque.
if($result->num_rows > 0) {
$row = $result->fetch_assoc();
$userid = $_SESSION['userid'] = $row['userid'];
$privileges = $_SESSION['privileges'] = $row['privileges'];
}
Des bonnes idées? Parce que je me suis gratté l'arrière de la tête en essayant de comprendre pourquoi la première "requête" fonctionne et la seconde ne fonctionne pas ?!
'password_verify' retourne vrai ou faux, rien d'autre. Vous ne devriez pas avoir besoin d'utiliser le mot de passe pour un clausel WHERE si vous avez déjà confirmé que tout va bien. Vous pouvez au lieu de simplement récupérer une colonne toutes les colonnes dont vous avez besoin et définir ce dont vous avez besoin si les informations d'identification sont correctes et sinon imprimer une erreur et/ou rediriger. –
Vous utilisez 'password_hash/verify': bien. Vous injectez des valeurs fournies par l'utilisateur dans vos requêtes SQL: ... –