locomputing
pwforget.php 
Entsprechende Datenbank Verbindung einfügen
Sitzung starten einfügen
Prüfen ob User eingeloggt ist oder nicht einfügen
Variable subject definieren
<?php
$postmaster="<dein webseitenname>";
?>
Benutzende Variablen auf leere Werte setzen
<?php
$user_name = $email = "";
$username_err = $mail_err = "";
?>
Formulardaten werden verarbeitet, wenn das Formular gesendet wird einfügen
POST für Username prüfen einfügen
POST für eMail prüfen einfügen
Keine Fehler Inhalt ausführen
<?php
if(empty($username_err) && empty($mail_err))
{
?>
weitere Variablen
<?php
$param_user=trim($user_name);
$param_email=trim($email);
$param_active=IntVal(1);
$param_blok=IntVal(0);
?>
Datenbank abfrage
<?php
$stmt=$msql->prepare("SELECT username,usermail FROM usertable WHERE username=? and usermail=? and active=? and block=?");
$stmt->bind_param('ssii',$param_user,$param_email,$param_active,$param_blok);
$result=$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows == 1)
{
?>
<?php
$stmt=$pdo->prepare("SELECT username,usermail FROM usertable WHERE username=:username and usermail=:usermail and active=:active and block=:block");
$stmt->bindParam(':username', $param_user, PDO::PARAM_STR);
$stmt->bindParam(':usermail', $param_email, PDO::PARAM_STR);
$stmt->bindParam(':active', $param_active, PDO::PARAM_INT);
$stmt->bindParam(':block', $param_blok, PDO::PARAM_INT);
$stmt->execute();
if ($stmt->rowCount() == 1)
{
?>
<?php
function PasswString($length=16)
{
return substr(str_shuffle(str_repeat($x='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil($length/strlen($x)) )),1,$length);
}
$psw=PasswString();
?>
Datenbank abfrage
<?php
$stmt=$msql->prepare("SELECT id, username, usermail FROM usertable WHERE username=?");
$stmt->bind_param('s',$param_user);
$stmt->bind_result($userid, $username, $usermail);
$stmt->execute();
while($stmt->fetch())
{
?>
<?php
$stmt=$pdo->prepare("SELECT id, username, usermail FROM usertable WHERE username=:username");
$stmt->bindParam(':username', $param_user, PDO::PARAM_STR);
$stmt->bindColumn(1,$userid);
$stmt->bindColumn(2,$username);
$stmt->bindColumn(3,$usermail);
$stmt->execute();
while ($stmt->fetch())
{
?>
Formulareingaben für eMail sortieren
<?php
$subject=$postmaster."\n";
$empfaenger=filter_var($usermail, FILTER_VALIDATE_EMAIL);
$text="Hallo: ".htmlspecialchars($username)."\n";
$text.="Betreff:Passwort vergessen\n";
$text.="Dein neues Passwort: ".$psw;
?>
eMail versenden
<?php
mail($empfaenger,$subject,$text);
?>
Passwort hashen
<?php
$passw=password_hash($psw, PASSWORD_DEFAULT);
?>
Datenbank aktualisieren
<?php
$stmt=$msql->prepare("UPDATE usertable SET userpass=? WHERE id=?");
$stmt->bind_param('si', $passw, $userid);
?>
<?php
$stmt=$pdo->prepare("UPDATE usertable SET userpass=:userpass WHERE id=:id");
$stmt->bindParam(':userpass', $passw, PDO::PARAM_STR);
$stmt->bindParam(':id', $userid, PDO::PARAM_INT);
?>
<?php
$stmt->execute();
}
echo'Die Daten wurden an die registrierungs-eMail versand.';
echo'<a href="login.html">Login</a>';
exit;
}
else
{
$errror ="ERROR! Daten Fehler";
}
Objekt schließen einfügen
Keine Fehler Ende
}
Verbindung beenden einfügen
}
?>
pwforget-formular 
Für Passwort-vergessen? wird ein Formular benötigt.
Formular muß erstellt werden
Beginn einer Html 5 Seite einfügen
Anfang Inhaltsbereich einfügen
Wie soll das Formular wo hin
<form method="post" action="pwforget.php">
Feld für Username variante 2 einfügen
Feld für eMail variante 2 einfügen
Feld für Senden einfügen
Ende eines Formulares einfügen
Ende Inhaltsbereich einfügen
Ende einer Html Seite einfügen