From 3964f90a3098143386ebf97d6a89da4a5e8951f4 Mon Sep 17 00:00:00 2001 From: illia Hromovoi Date: Thu, 10 Jul 2025 10:20:36 +0200 Subject: [PATCH] =?UTF-8?q?user=20change=20info=20+=20add=20hovers=20f?= =?UTF-8?q?=C3=BCr=20buttons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CSS/Element/button.css | 26 +++++++++++++ CSS/Element/sidebar.css | 32 +++++++++++++++ CSS/style.css | 5 +++ CSS/variables.css | 8 +++- Controller/UserController.php | 43 ++++++++++++++------- Views/User/showUserAccountPage.phtml | 58 +++++++++++++++++----------- 6 files changed, 134 insertions(+), 38 deletions(-) create mode 100644 CSS/Element/sidebar.css diff --git a/CSS/Element/button.css b/CSS/Element/button.css index 9f9edea..eed5813 100644 --- a/CSS/Element/button.css +++ b/CSS/Element/button.css @@ -56,3 +56,29 @@ .btn-logout{ background-color: red; } + +.btn-userchange{ + background-color: var(--brand-white); + color: var(--brand-background); +} + +/* Hovers */ +.btn-primary:hover { + background-color: var(--brand-primary-hover); +} + +.btn-secondary:hover { + background-color: var(--bg-muted-hover); +} + +.btn-accent:hover { + background-color: var(--fullblock-hover); +} + +.btn-danger:hover { + background-color: var(--error-hover); +} + +.btn-userchange:hover, .btn-logout:hover{ + opacity: 0.95; +} diff --git a/CSS/Element/sidebar.css b/CSS/Element/sidebar.css new file mode 100644 index 0000000..e20a2dc --- /dev/null +++ b/CSS/Element/sidebar.css @@ -0,0 +1,32 @@ +.sidebar { + width: 200px; + background-color: transparent; + height: 100%; +} + +.sidebar nav ul { + margin: 0; + padding: 0; +} + +.sidebar nav ul li { + margin-bottom: 0.5rem; + list-style: none; +} + +.sidebar nav ul li a { + text-decoration: none; + color: #333; + display: block; + padding: 0.5rem; + border-radius: 4px; +} + +.sidebar nav ul li a:hover { + background-color: #e2e6ea; +} + +.sidebar button{ + width: 100%; + padding: 10px 10px; +} diff --git a/CSS/style.css b/CSS/style.css index 367bdb9..106edd8 100644 --- a/CSS/style.css +++ b/CSS/style.css @@ -6,6 +6,7 @@ @import url(Element/form.css); @import url(Element/button.css); @import url(Element/card.css); +@import url(Element/sidebar.css); *, *:before, @@ -37,6 +38,10 @@ h2 { color: orange; } +*, button, a { + transition: background-color 0.2s, color 0.2s; +} + main { margin-top: 190px; } diff --git a/CSS/variables.css b/CSS/variables.css index 080a92e..b85371f 100644 --- a/CSS/variables.css +++ b/CSS/variables.css @@ -8,7 +8,6 @@ --input-placeholder: #998E82; --error: #FF0000; - /*Fonts*/ --font-family-main: "Inter", sans-serif; --font-family-headline: "Source Serif 4", serif; @@ -24,4 +23,11 @@ --h-md: 48px; --border-primary: 1px solid #998E82; + + /* Hover Variants */ + --brand-primary-hover: #FF9E33; + --brand-background-hover: #2A231F; + --bg-muted-hover: #6A6A6A; + --fullblock-hover: #00008B; + --error-hover: #CC0000; } \ No newline at end of file diff --git a/Controller/UserController.php b/Controller/UserController.php index 7be2598..5837577 100644 --- a/Controller/UserController.php +++ b/Controller/UserController.php @@ -280,18 +280,18 @@ class UserController{ } $submitted = [ + 'vorname' => trim($_POST['vorname'] ?? ''), 'name' => trim($_POST['name'] ?? ''), - 'lastname' => trim($_POST['lastname'] ?? ''), 'email' => trim($_POST['email'] ?? ''), 'password' => trim($_POST['password'] ?? ''), ]; $this->errors = []; - if (strlen($submitted['name']) < 2) { - $this->errors['name'] = 'Vorname muss mindestens 2 Zeichen haben.'; + if (strlen($submitted['vorname']) < 2) { + $this->errors['vorname'] = 'Vorname muss mindestens 2 Zeichen haben.'; } - if (strlen($submitted['lastname']) < 2) { - $this->errors['lastname'] = 'Nachname muss mindestens 2 Zeichen haben.'; + if (strlen($submitted['name']) < 2) { + $this->errors['name'] = 'Nachname muss mindestens 2 Zeichen haben.'; } if (!filter_var($submitted['email'], FILTER_VALIDATE_EMAIL)) { $this->errors['email'] = 'Ungültige E-Mail-Adresse.'; @@ -303,24 +303,31 @@ class UserController{ if (count($this->errors) > 0) { $this->view->setVars([ - 'labels' => $this->changeUserLabels, - 'validData' => $submitted, - 'errors' => $this->errors, + 'changeUserLabels' => $this->changeUserLabels, + 'validData' => $submitted, + 'errors' => $this->errors, ]); - return; $this->view->render('User/showUserChangeAccountSettings'); + return; } $updateData = []; - if ($submitted['name'] !== $currentUser['firstname']) { - $updateData['firstname'] = $submitted['name']; // PHP name = DB firstname + if ($submitted['vorname'] !== $currentUser['vorname']) { + $updateData['vorname'] = $submitted['vorname']; } - if ($submitted['lastname'] !== $currentUser['name']) { - $updateData['name'] = $submitted['lastname']; // PHP lastname = DB name + if ($submitted['name'] !== $currentUser['name']) { + $updateData['name'] = $submitted['name']; } if ($submitted['email'] !== $currentUser['email']) { $updateData['email'] = $submitted['email']; } + if ($submitted['password'] !== '') { + // Passwort und Salt auf neu setzen + $salt = bin2hex(random_bytes(16)); + $hash = hash('sha256', $submitted['password'] . $salt); + $updateData['passwort'] = $hash; + $updateData['salt'] = $salt; + } if ($submitted['password'] !== '') { @@ -344,15 +351,21 @@ class UserController{ $_SESSION['email'] = $updateData['email'] ?? $_SESSION['email']; $this->message = 'Änderungen erfolgreich gespeichert.'; + echo "ok"; + header("Location: index.php?controller=user&do=showUserAccountPage"); exit(); } else { $this->errors['general'] = 'Beim Speichern ist ein Fehler aufgetreten.'; + $this->view->setVars([ + 'changeUserLabels' => $this->changeUserLabels, + 'validData' => $submitted, + 'errors' => $this->errors, + ]); + $this->view->setDoMethodName('showUserChangeAccountSettings'); return; } - $this->view->render('User/showUserAccountPage'); - return; } diff --git a/Views/User/showUserAccountPage.phtml b/Views/User/showUserAccountPage.phtml index cacb05b..3b0e0ef 100644 --- a/Views/User/showUserAccountPage.phtml +++ b/Views/User/showUserAccountPage.phtml @@ -6,28 +6,42 @@
-

Hallo, - -
- Hier können Sie ihren Account verwalten. -

-
-
- - - -
-
- - - -
-
- - - -
-
+
+
+

Hallo, + +
+ Hier können Sie ihren Account verwalten. +

+
+ +