Szukasz w bazie usera po mailu lub loginie, a nastepnie weryfikujesz jego haslo za pomocą tego co efik napisał:
http://php.net/manual/en/function.password-verify.php
Łap na szybko napisany kod:
<?php
$pdo = new \PDO($dns, $dbUsername, $dbPassword);
$stmt = $pdo->prepare("SELECT password_hash FROM users WHERE email = :email");
if($stmt->execute(['email' => $email,])){
$fetch = $stmt->fetch(\PDO::FETCH_NUM);
list($passwordHash) = $fetch;
var_dump($fetch, $passwordHash);
if(password_verify($password, $passwordHash)){
echo 'poprawne haslo';
} else {
echo 'niepoprawne haslo'
}
}else {
echo 'nie mozna wykonać zapytania: `SELECT password_hash FROM users WHERE email = :email`';
}
Edit:
Po konsultacji z efikiem i drobnej edycji kodu:
<?php
$pdo = new PDO($dns, $dbUsername, $dbPassword);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('SELECT * from user where nickname = :email');
$stmt->execute(['email'=> $email]); //moze wyrzucic wyjatek przy zlym stmt
if($user = $stmt->fetch(PDO::FETCH_OBJ)){ //jesli nie znajdzie usera o danym emailu, to $user bedzie pusta == false
var_dump($user);
if(password_verify($password, $user->password_hash)){
echo 'poprawne haslo';
}else{
echo 'niepoprawne haslo';
}
}