2013-12-27 14:30:54 +01:00
<! DOCTYPE html >
< html >
< head >
< title > Registrieren </ title >
< meta charset = " utf-8 " />
2013-12-29 11:26:32 +01:00
< link rel = " stylesheet " href = " ./style.css " />
2013-12-27 14:30:54 +01:00
</ head >
< body >
< h1 > Registrieren </ h1 >
< ? php
if ( isset ( $_POST [ " benutzername " ])) { //Wenn das Formular ausgefüllt wurde ...
2013-12-30 16:29:10 +01:00
require_once " verbindungsaufbau.php " ;
2013-12-27 14:30:54 +01:00
$benutzername = $_POST [ " benutzername " ];
$vorname = $_POST [ " vorname " ];
$nachname = $_POST [ " nachname " ];
$passwort_1 = $_POST [ " passwort_1 " ];
$passwort_2 = $_POST [ " passwort_2 " ];
2013-12-30 16:29:10 +01:00
$email = $_POST [ " email " ];
2014-01-10 17:02:12 +01:00
if ( $passwort_1 != $passwort_2 ) { // überprüfen ob beide Passwörter übereinstimmen
echo " <strong>Das Passwort wurde falsch eingegeben</strong> " ;
exit ();
}
if ( $stmt = $mysqli -> prepare ( " SELECT COUNT(*) FROM benutzer WHERE username=? " )) { // überprüfen ob der Benutzername schon vergeben wurde.
2013-12-27 14:30:54 +01:00
$stmt -> bind_param ( " s " , $benutzername );
$stmt -> execute ();
$stmt -> bind_result ( $treffer );
$stmt -> fetch ();
$stmt -> close ();
if ( $treffer != 0 ) {
echo " <strong>Benutzername schon vergeben</strong> " ;
exit ();
}
}
2014-01-10 17:02:12 +01:00
$salt = " *|!JeFF28S,@Z3Sm5 \1 ? " ; //zufälligen geheimen Wert verwenden ...
$salted_password = $salt . $passwort_1 ; // und diesen an das Passwort anhängen ...
$password_hash = hash ( 'sha256' , $salted_password ); // ... und zuletzt das zusammengehängte Passwort mittels sha256 hashen
2013-12-31 12:45:35 +01:00
if ( $stmt = $mysqli -> prepare ( " INSERT INTO benutzer (username, passwort, vorname, nachname, email) VALUES (?, ?, ?, ?, ?) " )) { // Der SQL-Befehl wird vorbereitet ...
$stmt -> bind_param ( " sssss " , $benutzername , $password_hash , $vorname , $nachname , $email ); // ... eingesetzt ...
2013-12-27 14:30:54 +01:00
$stmt -> execute (); // ... und ausgeführt
$stmt -> close ();
$mysqli -> close ();
2013-12-27 14:56:43 +01:00
echo " <p>Benutzer erfolgreich angelegt</p> " ;
2014-01-10 17:02:12 +01:00
echo " <p><input type='button' value='Fenster schließen' onclick='window.opener.parent.location.reload();window.close()'></p> " ; // Beim Klick auf den Link wird das Fenster geschlossen und das Hauptfenster neu geladen
2013-12-27 14:56:43 +01:00
2013-12-27 14:30:54 +01:00
}
2013-12-30 16:29:10 +01:00
} else {
2013-12-27 14:30:54 +01:00
?>
2013-12-30 16:29:10 +01:00
< form action = " registrieren.php " method = " POST " >
< table >
< tr >
< td > Benutzername :</ td >
< td >< input type = " text " name = " benutzername " maxlength = " 10 " autofocus required /></ td >
</ tr >
< tr >
< td > Vorname :</ td >
< td >< input type = " text " name = " vorname " maxlength = " 10 " required /></ td >
</ tr >
< tr >
< td > Nachname :</ td >
< td >< input type = " text " name = " nachname " maxlength = " 10 " required /></ td >
</ tr >
< tr >
< td > Email :</ td >
< td >< input type = " email " name = " email " maxlength = " 50 " required /></ td >
</ tr >
< tr >
< td > Passwort :</ td >
< td >< input type = " password " id = " password " name = " passwort_1 " required /></ td >
</ tr >
< tr >
< td > Passwort wiederholen </ td >
< td >< input type = " password " id = " passwordconf " name = " passwort_2 " required oninput = " check(this) " /></ td >
</ tr >
< script language = 'javascript' type = 'text/javascript' >
2014-01-10 17:02:12 +01:00
function check ( input ) { //Beim Abschicken wird überprüft ob die Passwörter übereinstimmen -- wenn nicht wird eine Meldung ausgegeben (funktioniert nur bei modernen Browsern) -> sonst per PHP
2013-12-30 16:29:10 +01:00
if ( input . value != document . getElementById ( 'password' ) . value ) {
input . setCustomValidity ( 'Die beiden Passwörter müssen übereinstimmen' );
} else {
input . setCustomValidity ( '' );
}
}
</ script >
</ table >
< input type = " submit " value = " Registrieren " style = " width: auto; " >
</ form >
< ? php } ?>
2013-12-27 14:30:54 +01:00
</ body >
</ html >