Reviewnacharbeitung
This commit is contained in:
@@ -1,63 +1,43 @@
|
|||||||
<?php
|
<?php
|
||||||
$error = $error ?? null;
|
|
||||||
?>
|
|
||||||
|
|
||||||
<!--
|
require_once "php/model/LocalUserDAO.php";
|
||||||
Form: Registrierung
|
require_once "php/validator/user-validator.php";
|
||||||
Funktion: Erstellung neuer Benutzerkonten
|
|
||||||
-->
|
|
||||||
<main class="login-page">
|
|
||||||
<div class="login-container">
|
|
||||||
|
|
||||||
<h1>Jetzt Registrieren!</h1>
|
$error = null;
|
||||||
|
|
||||||
<?php if (!empty($error)): ?>
|
if ($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||||
<p class="alert-message is-error">
|
|
||||||
<?php echo htmlspecialchars($error); ?>
|
|
||||||
</p>
|
|
||||||
<?php endif; ?>
|
|
||||||
|
|
||||||
<form method="post" action="index.php?pfad=register">
|
$email = trim($_POST["email"] ?? "");
|
||||||
|
$vorname = trim($_POST["vorname"] ?? "");
|
||||||
|
$nachname = trim($_POST["nachname"] ?? "");
|
||||||
|
$plainPassword = $_POST["password"] ?? "";
|
||||||
|
|
||||||
<p class="input-label">Email:</p>
|
if (!userEmailValidator($email)) {
|
||||||
<input type="email"
|
$error = "Bitte gib eine gültige E-Mail-Adresse ein.";
|
||||||
name="email"
|
} elseif (!userNameValidator($vorname)) {
|
||||||
class="login-input"
|
$error = "Der Vorname muss 2 bis 50 Zeichen lang sein und darf nur Buchstaben, Umlaute, Leerzeichen und Bindestriche enthalten.";
|
||||||
placeholder="mustermann@web.de"
|
} elseif (!userNameValidator($nachname)) {
|
||||||
value="<?php echo htmlspecialchars($_POST["email"] ?? ""); ?>"
|
$error = "Der Nachname muss 2 bis 50 Zeichen lang sein und darf nur Buchstaben, Umlaute, Leerzeichen und Bindestriche enthalten.";
|
||||||
required>
|
} elseif (!userPasswordValidator($plainPassword)) {
|
||||||
|
$error = "Das Passwort muss 8 bis 72 Zeichen lang sein.";
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
$dao = new LocalUserDAO();
|
||||||
|
|
||||||
<p class="input-label">Vorname:</p>
|
$password = password_hash($plainPassword, PASSWORD_DEFAULT);
|
||||||
<input type="text"
|
|
||||||
name="vorname"
|
|
||||||
class="login-input"
|
|
||||||
placeholder="Max"
|
|
||||||
value="<?php echo htmlspecialchars($_POST["vorname"] ?? ""); ?>"
|
|
||||||
required>
|
|
||||||
|
|
||||||
<p class="input-label">Nachname:</p>
|
$dao->addUser($email, $vorname, $nachname, $password);
|
||||||
<input type="text"
|
|
||||||
name="nachname"
|
|
||||||
class="login-input"
|
|
||||||
placeholder="Mustermann"
|
|
||||||
value="<?php echo htmlspecialchars($_POST["nachname"] ?? ""); ?>"
|
|
||||||
required>
|
|
||||||
|
|
||||||
<p class="input-label">Passwort:</p>
|
$_SESSION["user"] = $vorname . " " . $nachname;
|
||||||
<input type="password"
|
$_SESSION["user_email"] = $email;
|
||||||
name="password"
|
|
||||||
class="login-input"
|
|
||||||
placeholder="Passwort"
|
|
||||||
required>
|
|
||||||
|
|
||||||
<button type="submit"
|
header("Location: index.php");
|
||||||
value="register"
|
exit();
|
||||||
name="registerSubmit"
|
|
||||||
class="login-button">
|
|
||||||
kostenlos registrieren
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</form>
|
} catch (InvalidArgumentException $e) {
|
||||||
|
$error = $e->getMessage();
|
||||||
</div>
|
} catch (Exception $e) {
|
||||||
</main>
|
$error = "Die Registrierung konnte nicht gespeichert werden.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,71 +1,28 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
|
||||||
* Prüft, ob der Name die folgenden Bedingungen erfüllt:
|
|
||||||
* Buchstaben von a-z; A-Z
|
|
||||||
* Umlaute äöüÄÖÜß
|
|
||||||
* Leerzeichen und Bindestrich
|
|
||||||
* 2-50 Zeichen
|
|
||||||
*
|
|
||||||
* @param $name
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
function userNameValidator($name)
|
function userNameValidator($name)
|
||||||
{
|
{
|
||||||
$name = trim($name);
|
$name = trim($name);
|
||||||
$namePattern = '/^[a-zA-ZäöüÄÖÜß\s-]{2,50}$/u';
|
$namePattern = '/^[a-zA-ZäöüÄÖÜß\s-]{2,50}$/u';
|
||||||
|
|
||||||
if (preg_match($namePattern, $name)) {
|
return preg_match($namePattern, $name) === 1;
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prüft, ob die E-Mail-Adresse gültig ist
|
|
||||||
* und höchstens 100 Zeichen enthält.
|
|
||||||
*
|
|
||||||
* @param $email
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
function userEmailValidator($email)
|
function userEmailValidator($email)
|
||||||
{
|
{
|
||||||
$email = trim($email);
|
$email = trim($email);
|
||||||
|
|
||||||
if (filter_var($email, FILTER_VALIDATE_EMAIL) && mb_strlen($email) <= 100) {
|
return filter_var($email, FILTER_VALIDATE_EMAIL) !== false
|
||||||
return true;
|
&& mb_strlen($email) <= 100;
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prüft, ob das Passwort die folgenden Bedingungen erfüllt:
|
|
||||||
* 8-72 Zeichen
|
|
||||||
*
|
|
||||||
* @param $password
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
function userPasswordValidator($password)
|
function userPasswordValidator($password)
|
||||||
{
|
{
|
||||||
$zeichenAnzahl = mb_strlen($password);
|
$zeichenAnzahl = mb_strlen($password);
|
||||||
|
|
||||||
if ($zeichenAnzahl >= 8 && $zeichenAnzahl <= 72) {
|
return $zeichenAnzahl >= 8 && $zeichenAnzahl <= 72;
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prüft ein optionales Passwort.
|
|
||||||
* Leeres Passwort ist erlaubt, wenn der Nutzer sein Passwort nicht ändern möchte.
|
|
||||||
* Wenn ein Passwort eingegeben wurde, gelten die normalen Passwortregeln.
|
|
||||||
*
|
|
||||||
* @param $password
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
function userOptionalPasswordValidator($password)
|
function userOptionalPasswordValidator($password)
|
||||||
{
|
{
|
||||||
if (!isset($password) || $password === '') {
|
if (!isset($password) || $password === '') {
|
||||||
@@ -73,6 +30,4 @@ function userOptionalPasswordValidator($password)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return userPasswordValidator($password);
|
return userPasswordValidator($password);
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
|
||||||
Reference in New Issue
Block a user