php password_verify () hash e pass não coincidem

Eu armazeno minhas senhas no meu banco de dados com hash password_hash () e estou tentando verificar as senhas no login com password_verify (). Por algum motivo, password_verify () continua retornando false.

Eu li a documentação dessa função e ela disse para garantir que o hash usado na função esteja entre aspas simples '', caso contrário, ele lerá o hash como se fossem três variáveis por causa dos $ 's, então tentei escrever $ valid como este '$ valid'. Mas isso não funcionou.

Quando echo $ valid, a saída é $ 2y $ 10 $ zzZCN7UlukvY2skb3ELVp.4y3Oc7NJTEsFyqdstqYxT

Quando echo $, a saída é 123, que é a senha usada para criar a conta.

Esta é a parte do meu login.php, e é aqui que sinto o problema.

$emailLogin = mysqli_real_escape_string($con, $_POST['emailLogin']);

$passLogin = mysqli_real_escape_string($con, $_POST['passLogin']);

$query = "SELECT `pass` FROM `user` WHERE `email`='$emailLogin'";

$result = mysqli_query($con, $query);

$row = mysqli_fetch_array($result);

$pass = $row['pass']; 

$key = VUP($passLogin, $pass);

Isso faz parte do meu confirm.php

function VUP($check, $valid){

if (password_verify($check, $valid)) {
$key = 1;

} else {
echo 'Invalid password.';
$key = 0;
die();
}
return $key;

}

Também parte do confirm.php

function SHP($password){

$hash = password_hash('$password', PASSWORD_BCRYPT);

return $hash;

}

Qualquer conselho seria muito útil.

questionAnswers(1)

yourAnswerToTheQuestion