Passwort beantworten überprüfen immer false zurück nicht finden. Ich habe jede Antwort hier gesehen, aber nichts davon hat geholfen. Das Passwortfeld ist varchar (255). Wenn ich das Passwort aus einer Datenbank var_dump, zeigt es String (60) und das Passwort ist korrekt, aber die Funktion gibt immer noch falsch zurück. Hier ist der Code, der in der Datenbank gespeichert ist:password_verify hält falsche Rückkehr und ich kann überall
if(empty($_POST['pass'])) {
$passErr = "Password required!";
$errors[] = "Pass error";
} else {
$pass = test_input($_POST["pass"]);
if(!preg_match("/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/", $pass)) {
$passErr = "Password not well formed";
$errors[] = "Pass error";
} else {
$pass_hashed = password_hash($pass, PASSWORD_DEFAULT);
}
}
$hash_ver = md5(rand(0, 1000));
$status = "";
$stm = $conn->prepare("INSERT INTO user VALUES(?, ?, ?, ?, ?, ?, ?, ?)");
$stm->bind_param("sssssssi", $id, $pass_hashed, $email, $fName, $lName, $hash_ver, $status, $id_role);
$stm->execute();
echo strlen($pass_hashed);
Und das ist Teil des Login-Skript
if(count($array) != 0) {
echo "<script>alert('Ima gresaka')</script>";
} else {
include('connectionFile/connection.php');
$stmt = $conn->prepare("SELECT `name`,`last_name`,`status_verif`,`email`,`password` FROM user WHERE `email`=?");
$stmt->bind_param("s", $email);
$stmt->execute();
if($res = $stmt->get_result()) {
$count = $res->num_rows;
if($count == 1) {
$row = $res->fetch_assoc();
$passwordb = $row['password'];
//echo "<p>".$passwordb."</p>";
$verify = password_verify($pass, $passwordb);
if($verify) {
echo "<script>alert('Password match')</script>";
} else {
var_dump($verify);
var_dump($passwordb);
echo "<script>alert('Password doesnt match')</script>";
}
} else {
echo "<script>alert('0 rows')</script>";
}
} else {
echo "<script>alert('No rows at all')</script>";
}
}
Haben Sie Echo Ihre '$ pass' versucht? Wird es gedruckt, wie Sie es erwarten? –
Was macht diese Methode 'test_input()'? Vielleicht fügt/fügt man etwas hinzu, von dem man nichts weiß. –
sollten Sie auch Passwörter in irgendeiner Art und Weise werden die Manipulation nicht und kann die Ursache für all dies sein. –