Passwort vergessen?-Link
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
angabe
benutzer
bestehen
betreff
datensatz
datum
derartige funktion
eigentliche benutzer
formular
funktion
hinsicht
kleinen ablauf
problem
programm
punkt
richtige benutzer
sicherheitsrisiko
text
verwendete umgebung
-
wie kann ich das machen, das mit dem klick auf einen link eine mail an denjenigen geschickt wird? bei html-mailto-funktion sieht derjenige das ja. die daten habe ich schon in einer mysql tabelle
thx im voraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du ließt mit mysql_query/mysql_fetch_object das Passwort aus (wenn du es als Checksum gespeichert hast generierst du ein neues) und sendest es per mail() an den User. Zum Beispiel.
-
Erst mal brauchst du den Link (z.B. auf eine PHP):
--------------------------------------------------
<a href=\"<<<dein Pfad>>>/getPWD.php\">Passwort anfordern</a>
Die getPWD.php (z.B.):
----------------------
<?php
mysql_connect(\"<<<hostname>>>\", \"<<<user>>>\", \"<<<password>>>\" );
mysql_select_db(<<<Deine DB>>> );
$result = mysql_query(\"select PWD from <<<Deine Table>>> where USR=<<<.....>>>\" );
mysql_fetch_object($result)
$empfaenger = \"empf@domain.de\";
$betreff = \"<<<z.B. deine Domain>>>\";
$from = \"From: ABSENDER <absender@domain.de>\";
$text = \"Hallo \", <<<USER>>>, \", dein (neues) Passwort lautet: \", $row->user_id, \"...\";
mail($empfaenger, $betreff, $text, $from);
echo \"Passwort wurde dir per Mail zugesandt:<br />\\n\"
mysql_free_result($result);
?>
Ich hoffe, das stimmt so, denn es ist bei mir schon wieder eine ganze Weile her!?!
-
Wir können dir hier kein Tutorial liefern, weil eine derartige Funktion auf die verwendete Umgebung (engl.: Environment) drauf an kommt. Das heißt, je nach Datenbankstruktur muss die Funktion anders aussehen.
Aber um dir einen kleinen Ablauf zu schildern:
1. Beim Klick auf den Link wird eine Seite zur Angabe vom Benutzernamen geladen.
2. Benutzer gibt seinen Nickname ein.
3. Das Programm schaut in der Datenbank nach. Wenn der Name nicht vorhanden ist: Fehler. Ansonsten nimmt das Programm die Mail-Adresse, welche im selben Datensatz steht.
4. Wenn das Passwort als MD5-Hash gespeichert ist, muss das Programm ein neues PW generieren, dieses Speichern und dem Benutzer per mail() schicken. Ansonsten kann das Programm das PW direkt per mail() zuschicken. -
In Punkt 4 ist aber noch ein nicht unerhebliches Problem vorhanden.
Wenn ein Dritter einen Benutzernamen in das Formular eingibt bzw. ein neues Passwort anfordert, wird dann das Passwort geändert, obwohl der eigentliche Benutzer dies evtl. nicht gewünscht hat.
Andererseits erhält ja der \"richtige\" Benutzer die E-Mail mit dem neuen Passwort. Sollte dann kein Sicherheitsrisiko in dieser Hinsicht bestehen. Es ist aber trotzdem nervig wenn einem das Passwort immer von einem anderen geändert wird.
Deshalb sollte noch ein weiterer Kontrollmechanismus eingebaut werden. -
danke, ich testes mal
-
In Punkt 4 ist aber noch ein nicht unerhebliches Problem vorhanden.
Wenn ein Dritter einen Benutzernamen in das Formular eingibt bzw. ein neues Passwort anfordert, wird dann das Passwort geändert, obwohl der eigentliche Benutzer dies evtl. nicht gewünscht hat.
Andererseits erhält ja der \"richtige\" Benutzer die E-Mail mit dem neuen Passwort. Sollte dann kein Sicherheitsrisiko in dieser Hinsicht bestehen. Es ist aber trotzdem nervig wenn einem das Passwort immer von einem anderen geändert wird.
Deshalb sollte noch ein weiterer Kontrollmechanismus eingebaut werden.
Da bietete sich einfach die eMail-Adresse an, die auch in der Datenbak steht. Wenn beides stimmt (also Username + Mail), dann erst kommt der User das Passwort an die Adresse geschickt, sonst hat einfach nicht. -
Ich würde das Passwort nicht gleich ändern, sondern dem User eine E-Mail schicken, die er per Link bestätigen muss und dann wird das Passwort erst geändert und eine weitere E-Mail mit dem neuen Passwort gesendet.
-
Gibt es eigentlich eine sichere Lösung?
Denn auch mit den letzt genannten Möglichkeiten ist ein Missbrauch möglich. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage