Hi,
ich bin gerade dabei ein "Passwort vergessen" Teil zu schreiben.
Leider hat es noch nicht auf anhieb geklappt
Vielleicht habt ihr einen schnellen Rat.
- Es wird kein Fehler ausgegeben
- Die Mail wird mit generiertem Passwort gesendet
Der Fehler liegt denke ich in der "UPDATE Abfrage". Denke er übermittelt der Datenbank nicht das verschlüsselte Passwort. Nur warum?
ich bin gerade dabei ein "Passwort vergessen" Teil zu schreiben.
Leider hat es noch nicht auf anhieb geklappt
Vielleicht habt ihr einen schnellen Rat.
PHP-Code:
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['email'])) {
return INVALID_FORM;
}
$email = $_POST['email'];
$ergebnis = "SELECT
*
FROM
User
WHERE
Email = '$email' ";
if (!$stmt = $db->prepare($ergebnis)) {
return $db->error;
}
if (!$stmt) {
return $db->error;
}
$stmt->close();
$chars = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");
$newpwd = 'x';
for ($i = 0; $i < 9; $i++) {
$newpwd .= $chars{mt_rand (0,strlen($chars))};
}
$ToEmail = $email;
$header = "Dein Account f�r xxxyyy";
$Message = 'Dein Account f�r xxxyyy
!! Vorsichtig !! Dein Passwort wurde ge�ndert.
Dein neues Passwort: '.$newpwd.'
Viel Spa� weiterhin auf unserer Seite!';
if(mail($ToEmail,$header, $Message, "From: Administrator ")) {
return 'Dein Account wurde gefunden und das neue Passwort wurde zu '.$email.' geschickt.';
} else {
return 'Es gab ein Problem beim Senden.';
}
$newmd5pwd=md5($newpwd);
$sql = "UPDATE
User
SET
Password='$newmd5pwd'
WHERE
Email='$email' ";
if (!$stmt = $db->prepare($sql)) {
return $db->error;
}
if (!$stmt->execute()) {
return $stmt->error;
}
}
- Die Mail wird mit generiertem Passwort gesendet
Der Fehler liegt denke ich in der "UPDATE Abfrage". Denke er übermittelt der Datenbank nicht das verschlüsselte Passwort. Nur warum?
Kommentar