user change info + add hovers für buttons

This commit is contained in:
Illia Hromovoi 2025-07-10 10:20:36 +02:00
parent 2c044b2498
commit 3964f90a30
6 changed files with 134 additions and 38 deletions

View File

@ -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;
}

32
CSS/Element/sidebar.css Normal file
View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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,
'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;
}

View File

@ -6,27 +6,41 @@
<div class="container">
<div class="row">
<div class="col-12">
<div class="row">
<div class="col-8">
<h1>Hallo,
<?php echo ($_SESSION['vorname'] ?? "") . " " . ($_SESSION['name'] ?? "") ?>
</br>
Hier können Sie ihren Account verwalten.
</h1>
<div class="row">
</div>
<div class="col-4 sidebar">
<nav>
<ul>
<li>
<form method="post">
<input type="hidden" name="controller" value="user">
<input type="hidden" name="do" value="logout">
<button type="submit" class="btn btn-logout">Ausloggen</button>
<button type="submit" class="btn btn-primary">Ausloggen</button>
</form>
</li>
<li>
<form method="post">
<input type="hidden" name="controller" value="user">
<input type="hidden" name="do" value="changeAccountDataRedirect">
<button type="submit" class="btn btn-userchange">Meine Kontodaten ändern</button>
</form>
</li>
<li>
<form method="post">
<input type="hidden" name="controller" value="user">
<input type="hidden" name="do" value="deleteAccount">
<button type="submit" class="btn btn-logout">Meinen Account löschen</button>
</form>
<form method="post">
<input type="hidden" name="controller" value="user">
<input type="hidden" name="do" value="changeAccountDataRedirect">
<button type="submit" class="btn btn-logout">Meine Kontodaten ändern</button>
</form>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>