1
0
Fork 0
This repository has been archived on 2024-06-28. You can view files and clone it, but cannot push or open issues or pull requests.
veranstaltung/registrieren.php
2014-01-10 17:02:12 +01:00

98 lines
No EOL
3.4 KiB
PHP

<!DOCTYPE html>
<html>
<head>
<title>Registrieren</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="./style.css" />
</head>
<body>
<h1>Registrieren</h1>
<?php
if (isset($_POST["benutzername"])) { //Wenn das Formular ausgefüllt wurde ...
require_once "verbindungsaufbau.php";
$benutzername = $_POST["benutzername"];
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$passwort_1 = $_POST["passwort_1"];
$passwort_2 = $_POST["passwort_2"];
$email = $_POST["email"];
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.
$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();
}
}
$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
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 ...
$stmt->execute(); // ... und ausgeführt
$stmt->close();
$mysqli->close();
echo "<p>Benutzer erfolgreich angelegt</p>";
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
}
} else {
?>
<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'>
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
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 } ?>
</body>
</html>