<form action="index.php?doregister=true" method="post">
Benutzername: <input type="text" size="25" placeholder="Username" name="username">
<br>
Passwort: <input type="password" size="20" placeholder="Password" name="userpassword">
<br>
<input type="submit" value="Registrieren">
<?php
if($_GET['doregister']) {
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$password = password_hash($_POST['userpassword'], PASSWORD_DEFAULT);
#bla bla, um Daten zu verifizieren (z.B. E-Mail mit filter_input wie oben, aber filter: FILTER_VALIDATE_EMAIL)"
#noch mehr bla bla, um Benutzer in Datenbank zu speichern.";
echo "<br><br>Damit haben wir als Benutzername: " . $username;
echo "br>Wichtig ist, im Quelltext werden Sonderzeichen ersetzt. Damit man kein HTML in deine Webseite schummeln kann. Im Quelltext steht: ";
echo "<code>" . str_replace("&", "&", $username) . "</code>";
echo "<br><br>Und das Passwort lautet jetzt: " . $password;
}
?>
</form>
<br><br>
<hr>
Zum Einloggen suchen wir den Benutzernamen und vergleichen dann das gehashte Passwort
<hr>
<br><br>
<form action="index.php?dologin=true" method="post">
Benutzername: Benutzername: <input type="text" size="25" placeholder="Username" name="username">
<br>
Passwort: <input type="password" size="20" placeholder="Password" name="userpassword">
<br>
<input type="submit" value="Login">
<?php
if($_GET['dologin']) {
$username = filter_input(INPUT_POST, 'loginname', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$password = password_hash($_POST['loginpassword'], PASSWORD_DEFAULT);
# in der Datenbank befindet sich bereits das gehashte Passwort. Daher vergleichen wir $passwort mit dem String aus der Datenbank
echo "<br><br>";
if($password == $dbquery['password']) {
echo "Richtig eingeloggt. Starte Session usw.";
}
else {
echo "Falscher Benutzername oder Passwort";
}
}
?>
</form>