Also pass auf. Du generierst das Passwort und speicherst es in $password. Dann verschlüsselst du das Passwort md5() und speicherst das ergebis in $pwd. $password verschickst du per Mail. $pwd trägst du in die DB ein. Ob du jetzt zuerst die Mail verschickst oder das Passwort zuerst in die DB schreibst ist dabei fast egal. Ich würde dir aber raten zuerst das Passwort in die DB einzutragen und zu überprüfen, ob die Aktion erfolgreich war. Wurde das Passwort korrekt eingetragen kannst du die Mail verschicken. Wichtig ist wie gesagt nur, dass das kodierte Passwort in die Db kommt und das unkodierte in die Mail!
MfG, Andy
Hier noch ein Beispiel mit MySQLi (PHP5 erforderlich)
PHP-Code:
<?php
// prepare user-data and encode password
$name = strip_tags($_POST['name']);
$password = strip_tags($_POST['password']);
$mail = strip_tags($_POST['mail']);
$pwd = md5($password);
// create connection to database
@$db = new mysqli("localhost", "user", "pwd", "usr_db");
// prepare sql-query
$sql = "INSERT INTO lotex
(`id`, `name`, `passw`, `email`)
VALUES
('', '{$name}', '{$pwd}', '{$mail}')";
// check result
if( $db->affected_rows <= 0 )
{
echo 'Cannot execute MySQL-query.';
}
else
{
// create message to user
$message = "Danke für ihre Registrierung!\n\nIhre Zugangsdaten:\nName: {$name}\nPasswort: {$password}\n\nMit freundlichen Grüßen, Ihr Administrator."
// prepare header-data
$header =
'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
// send mail
mail($mail, 'Zugangsdaten für deine-domain.tld', $message, $header);
// message to browser
echo 'Danke für Ihre Registrierung. Sie werden bald eine Email mit Ihren Zugangsdaten erhalten!';
}
?>
//EDIT: Natürlich solltest du die Mail-Addresse und die anderen Formualr Daten noch auf ihre Existens und ob sie gefüllt sind überprüfen. Die Mail-Addresse kannst du mit filter (PHP5 / ext/filter/) überprüfen.