From a9997b3c6394ff16a5180093e9cc1912f1a75598 Mon Sep 17 00:00:00 2001 From: Karsten Tlotzek Date: Mon, 7 Jul 2025 14:31:32 +0200 Subject: [PATCH] =?UTF-8?q?Registrierung=20und=20Login=20aufger=C3=A4umt:?= =?UTF-8?q?=20Felder=20und=20Fehler=20angepasst,=20Formulardaten=20bleiben?= =?UTF-8?q?=20bei=20Fehlern=20erhalten,=20Navigation=20zeigt=20jetzt=20nur?= =?UTF-8?q?=20noch=20passende=20Links=20je=20nach=20Login-Status,=20Passwo?= =?UTF-8?q?rt-Fehler=20=20verst=C3=A4ndlich=20auf=20Deutsch.=20Alles=20ein?= =?UTF-8?q?heitlich=20und=20benutzerfreundlich=20gemacht!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CSS/style.css | 63 ++++++++++++----- Controller/AuthController.php | 28 ++++---- Controller/RegisterController.php | 10 --- Controller/WelcomeController.php | 18 ----- Model/AuthModel.php | 21 +++--- Views/Auth/showLoginForm.phtml | 6 +- Views/Auth/showRegistrationForm.phtml | 87 ++++++++---------------- Views/Auth/showRegistrationSuccess.phtml | 14 ++++ Views/header.phtml | 8 +-- 9 files changed, 124 insertions(+), 131 deletions(-) delete mode 100644 Controller/RegisterController.php delete mode 100644 Controller/WelcomeController.php create mode 100644 Views/Auth/showRegistrationSuccess.phtml diff --git a/CSS/style.css b/CSS/style.css index 6fda564..b1097a0 100644 --- a/CSS/style.css +++ b/CSS/style.css @@ -150,32 +150,63 @@ a { border-radius: 10px; } -.login-container { - position: absolute; - top: 200px; +.form-container { background-color: #BAC8D4; - width: 900px; - height: 450px; + width: 100%; + max-width: 400px; border-radius: 10px; display: flex; flex-direction: column; align-items: center; - justify-content: center; box-sizing: border-box; + padding: 32px 24px 24px 24px; + margin: 32px auto; } - -.event-container { - position: absolute; - top: 200px; - background-color: #BAC8D4; - width: 900px; - height: 450px; - border-radius: 10px; +.form-horizontal { + width: 100%; display: flex; flex-direction: column; - align-items: center; - justify-content: center; + gap: 12px; + margin-bottom: 10px; +} +.form-horizontal label { + margin-bottom: 2px; +} +.form-horizontal input[type="text"], +.form-horizontal input[type="email"], +.form-horizontal input[type="password"] { + width: 100%; + padding: 8px 10px; + border: 1px solid #BAC8D4; + border-radius: 4px; + font-size: 1rem; box-sizing: border-box; + background: #fff; +} +.form-horizontal button { + width: 100%; + padding: 10px 0; + border: none; + border-radius: 4px; + background: #4d4d4d; + color: #fff; + font-size: 1rem; + margin-top: 8px; + cursor: pointer; + transition: background 0.2s; +} +.form-horizontal button:hover { + background: #333; +} +.login-error, .form-error { + background: #ffe0e0; + color: #b30000; + border: 1px solid #ffb3b3; + border-radius: 6px; + padding: 10px 16px; + margin-bottom: 18px; + width: 100%; + text-align: center; } @media (max-width: 600px) { diff --git a/Controller/AuthController.php b/Controller/AuthController.php index 79dab84..db50723 100644 --- a/Controller/AuthController.php +++ b/Controller/AuthController.php @@ -63,14 +63,14 @@ class AuthController public function register() { $data = [ - 'first_name' => $_POST['vorname'] ?? '', - 'last_name' => $_POST['nachname'] ?? '', - 'street' => $_POST['strasse'] ?? '', - 'house_number' => $_POST['hausnr'] ?? '', - 'postal_code' => $_POST['plz'] ?? '', - 'city' => $_POST['ort'] ?? '', - 'country' => $_POST['land'] ?? '', - 'phone' => $_POST['tel'] ?? '', + 'first_name' => $_POST['first_name'] ?? '', + 'last_name' => $_POST['last_name'] ?? '', + 'street' => $_POST['street'] ?? '', + 'house_number' => $_POST['house_number'] ?? '', + 'postal_code' => $_POST['postal_code'] ?? '', + 'city' => $_POST['city'] ?? '', + 'country' => $_POST['country'] ?? '', + 'phone' => $_POST['phone'] ?? '', 'email' => $_POST['email'] ?? '', 'password' => $_POST['password'] ?? '', 'password_repeat' => $_POST['password_repeat'] ?? '', @@ -80,13 +80,15 @@ class AuthController $result = $this->model->register($data); if ($result === true) { - $this->view->setVars(['success' => 'Registrierung erfolgreich!']); - $this->view->render('Auth/showLoginForm'); - exit; + $this->view->setDoMethodName('showRegistrationSuccess'); } else { - $errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen."; + if (is_array($result)) { + $errors['register'] = implode('
', $result); + } else { + $errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen."; + } $this->view->setVars(['errors' => $errors, 'validData' => $data]); - $this->view->render('Auth/showRegistrationForm'); + $this->view->setDoMethodName('showRegistrationForm'); } } diff --git a/Controller/RegisterController.php b/Controller/RegisterController.php deleted file mode 100644 index eb2059b..0000000 --- a/Controller/RegisterController.php +++ /dev/null @@ -1,10 +0,0 @@ -pwRequirementCheck($data['password']) !== true) { - return "Passwort muss mindestens 8 Zeichen lang sein und mindestens ein Großbuchstabe, ein Kleinbuchstabe, eine Zahl und ein Sonderzeichen enthalten."; + $pwCheck = $this->pwRequirementCheck($data['password']); + if ($pwCheck !== true) { + return $pwCheck; // Array mit spezifischen Fehlern zurückgeben } $hashedPassword = password_hash($data['password'], PASSWORD_DEFAULT); @@ -220,16 +221,16 @@ class AuthModel extends Database public function pwRequirementCheck($password){ $error = []; - if(strlen($password) <= 8) - $error[] = "min 8 Charackter"; + if(strlen($password) < 8) + $error[] = "Passwort: mindestens 8 Zeichen"; if(!preg_match("/[A-Z]/", $password)) - $error[] = "min one large Character"; + $error[] = "Passwort: mindestens ein Großbuchstabe"; if(!preg_match("/[a-z]/", $password)) - $error[] = "min one small charakter"; + $error[] = "Passwort: mindestens ein Kleinbuchstabe"; if(!preg_match("/[0-9]/", $password)) - $error[] = "min one number"; - if(!preg_match("[^a-zA-Z0-9\s]", $password)); - $error[] = "min one special character"; + $error[] = "Passwort: mindestens eine Zahl"; + if(!preg_match("/[^a-zA-Z0-9\s]/", $password)) + $error[] = "Passwort: mindestens ein Sonderzeichen"; if(empty($error)) return true; diff --git a/Views/Auth/showLoginForm.phtml b/Views/Auth/showLoginForm.phtml index a6e923f..2be97ab 100644 --- a/Views/Auth/showLoginForm.phtml +++ b/Views/Auth/showLoginForm.phtml @@ -1,8 +1,8 @@
-