I've a problem with my php login file. I ask the password from my db by checking the email. When I obtain this password I check it with the password the user filled in.
In the password_verify($Passwd, $row['Passwd']) the result will always return 0 but the result should be return 1 (password matches).
Why do my passwords not match with each other?
Login code:
<?php
if(isset($_POST['submit'])){
    include_once '../includes/connection.php';
    $Email = $_POST['email'];
    $Passwd = $_POST['passwd'];
    //Create Template
    $sql = "SELECT Passwd FROM user WHERE Email = ?";
    //Create Prepared Statement
    $stmt = mysqli_stmt_init($conn);
    //Prepare Prepared Statement
    if(!mysqli_stmt_prepare($stmt, $sql)){
        echo "SQL Statement Failed";
    } else {
        mysqli_stmt_bind_param($stmt, "s", $Email);
        mysqli_stmt_execute($stmt);
        $res = mysqli_stmt_get_result($stmt);
        
        while ($row = mysqli_fetch_assoc($res)){
            
            echo $Passwd . "<br>";
            echo $row['Passwd'];
            if(password_verify($Passwd, $row['Passwd'])){
                echo "1";
            } else {
                echo "0";
            }
        }
    }
} else {
    header("Location: ../index.php?login=error");
}
?>
Registration code:
<?php
if(isset($_POST['submit'])){
    include_once '../includes/connection.php';
    $Username = $_POST['username'];
    $Email = $_POST['email'];
    $Passwd = $_POST['pwd'];
    //Create Template
    $sql = "INSERT INTO user (Username, Email, Passwd)
        VALUES (?, ?, ?);";
    //Create Prepared Statement
    $stmt = mysqli_stmt_init($conn);
    //Prepare Prepared Statement
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        echo "SQL Statement Failed";
    } else {
        $hashed_passwd = password_hash($Passwd, PASSWORD_DEFAULT);
        
        //Replace '?' by the acctual data
        mysqli_stmt_bind_param($stmt, "sss", $Username, $Email, $hashed_passwd);
        //Run parameters inside database
        mysqli_stmt_execute($stmt);
    }
    header("Location: ../index.php?signup=succes");
} else {
    header("Location: ./index.php?sinup=error");
}
?>
Passwd is a varchar(50) column in the database.
 
    