Passwort vergessen Funktion?

Mew

Erfahrenes Mitglied
Hallo, ich habe ein Loginscript und in meiner datenbank die emailadressen von usern. Das Passwort ist verschlüsselt (md5) in der Datenbank gespeichert. Wenn der User seine mailadresse in das Formular eingibt, soll ein neues Passwort generiert und erstellt werden. Es soll per mail an den Benutzer geschickt werden. Wie mache ich das am besten?

Vielen Dank
 
Hallo,

am besten du lässt den Benutzer seinen Benutzernamen oder seine mail-adresse eingeben, suchst dann danach in der Datenbank, generierst ein neues Passwort und speicherst es in der Datenbank verschlüsselt ab, du überschreibst also das alte Passwort. Das neu generierte Passwort schickst du dann dem User per Mail und er kann sich damit wie gewohnt einloggen.

Gruß
cesupa
 
ja und wie mach ich das, dass ein neues generiert wird und das alte überschrieben wird?
MFG MEw
 
Aha, da liegt also dein Problem. Also: das Passwort kannst du mit einem Zufallsgenerator erstellen, sie dazu rand() und mit den mysql-Funktionen von PHP kannst du das Passwort in deine DB speichern (Vorausgesetzt du nutzt mySQL).

Gruß
cesupa
 
Zum Beispiel so:
PHP:
//Neues PW generieren
$array_b = explode(",", "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0");
srand ((double)microtime()*1000000);
for($i=0;$i<6;$i++) {
	$z = rand(0,30);
	$new_pw .= "".$array_b[$z]."";
}
 
Hier mit sonderzeichen:

PHP:
function generatePW($length) {
 
	$dummy	= array_merge(range('0', '9'), range('a', 'z'), range('A', 'Z'), array('#','&','@','$','_','%','?','+'));
 
	mt_srand((double)microtime()*1000000);
 
	for ($i = 1; $i <= (count($dummy)*2); $i++)
	{
		$swap		= mt_rand(0,count($dummy)-1);
		$tmp		= $dummy[$swap];
		$dummy[$swap]	= $dummy[0];
		$dummy[0]	= $tmp;
	}
	return substr(implode('',$dummy),0,$length);
}

Funktioniert wunderbar - den Wert der da rauskommt sende ich an die mail und speicher Ihn mit Update einfach wieder ab - davor natürlich noch in md5 wandeln oder die md5 funktion von mysql nutzen...

ist eigentlich nich so schwer ;)
 
hey cool vielen dank euch allen ich werde das später ausprobieren und mich dann nochmal melden.
 
Zurück