Ich habe Probleme mit password_verify zu funktionieren, es gibt immer falsch (falsches Passwort) zurück. Wenn ich das Passwort zurückmelde, wird das korrekte Passwort angezeigt. Irgendwelche Ideen? Hier ist mein Code:PHP - password_verify gibt immer false zurück (falsches Passwort)
<?php
$servername = "localhost";
$database_name = "xxx";
$database_username = "xxx";
$database_password = "xxx";
$username = $_POST['username'];
$password = $_POST['password'];
$conn = mysqli_connect ($servername, $database_username, $database_password, $database_name);
$error_message = "";
$allowed_chars = "/^[A-Za-z .'-]+$/";
$email_chars = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
function error ($error) {
echo $error;
die();
}
if ($conn->connect_error) {
die ("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT username, password FROM users";
$query = mysqli_query ($conn, $sql);
while ($row = mysqli_fetch_assoc ($query)) {
echo 'Username: ' . $row["username"] . '<br>' . 'Password: ' . $password . '<br>' . 'Hashed Password: ' . $row["password"] . '<br><br>';
}
$hashed_password = "SELECT password FROM users WHERE username = '$username'";
$query = mysqli_query ($conn, $hashed_password);
if (!isset ($query)) {
echo '$query doesn\'t appear to be set' . '<br>';
} else {
echo '$query is set' . '<br>';
}
$password_input = password_verify ($password, $hashed_password);
$result = mysqli_fetch_assoc ($query);
$login_cred = "SELECT * FROM users WHERE username='$username'";
if ($password_input) {
echo 'The password you entered is correct!';
} else {
echo 'The password you entered is incorrect!';
}
?>
Database structure for password
Cheers, ist jede Hilfe sehr geschätzt.
'$ hashed_password' ist der Abfrage-String, nicht das Ergebnis implementiert ist –