sql >> Database teknologi >  >> RDS >> Mysql

Adgangskode-hash returnerer falsk

Se på din forespørgsel en gang til:

SELECT password FROM users WHERE email = :email

Du vælger kolonneadgangskoden,

når du henter rækken, bruger du feltet hash

$_SESSION['hash'] = $row1['hash'];

I modsætning til du tror, ​​er dit script slet ikke simpelt, du udfører 3 forespørgsler på samme post, prøv denne fremgangsmåde

$email = $_POST['email'];
$pass = $_POST['password'];

if($email === ''){
    $_SESSION['message1'] = 'Enter a valid email';
    header('Location: index.php');
    exit();
}

if($pass === ''){
    $_SESSION['message1'] = 'Enter a valid password';
    header('Location: index.php');
    exit();
}

$query = 'SELECT name, email, password 
          FROM users 
          WHERE email = :email LIMIT 1';


$stmt = $con->prepare($query);
$stmt->bindValue(':email', $email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

if(!$row){
    $_SESSION['message1'] = 'User does not exist';
    header('Location: index.php');
    exit();
}

//hashed password from Database
$hash = $row['password'];

if(password_verify($pass, $hash)){
    $_SESSION['hash'] = $row['password'];
    $_SESSION['name'] = $row['name'];
    $_SESSION['email'] = $row['email'];
    header('Location: profile.php');
}else{
    $_SESSION['message1'] = 'Make sure email and password are correct';
    header('Location: index.php');
    exit();
}



  1. ORA-12505, TNS:listener kender i øjeblikket ikke til SID givet i connect des

  2. Bulk indsæt med SQLAlchemy ORM

  3. Psycopg2 Indsæt i tabel med pladsholdere

  4. Hvordan man kører eller indlæser .po/.mo-filer til lokalisering i php