From 5a3a7909ae6a459cd8e6039d1c1ca77293ee9311 Mon Sep 17 00:00:00 2001 From: Nathan Leander Richenzhagen Date: Mon, 9 Dec 2024 06:21:34 +0100 Subject: [PATCH] =?UTF-8?q?Hinzuf=C3=BCgen=20der=20'Passwort=20=C3=A4ndern?= =?UTF-8?q?'=20Funktion,=20sowie=20Darstellung=20als=20Dropdown-Men=C3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webseite/header.php | 216 ++++++++++++++++++++++++++++++++++++++---- webseite/password.php | 39 ++++++++ 2 files changed, 238 insertions(+), 17 deletions(-) create mode 100644 webseite/password.php diff --git a/webseite/header.php b/webseite/header.php index 31b5f69..3e53161 100644 --- a/webseite/header.php +++ b/webseite/header.php @@ -28,16 +28,30 @@ require_once("classes/User.php"); session_start(); if (isset($_SESSION['user']) && $_SESSION['user']->isLoggedIn()) { - // Logout Button - echo '
- -
'; - // Username Dropdown - Weitere Funktionen implementierbar - echo '
- -
'; + ?> +
+ + + + + +
+ @@ -84,6 +98,53 @@ if (!isset($_SESSION['user']) || !$_SESSION['user']->isLoggedIn()) { } ?> + +isLoggedIn()) { + ?> + + + + + + diff --git a/webseite/password.php b/webseite/password.php new file mode 100644 index 0000000..3f66524 --- /dev/null +++ b/webseite/password.php @@ -0,0 +1,39 @@ +isLoggedIn()) { + header("Location: index.php?password_error=not_logged_in"); + exit(); + } + + $currentPassword = $_POST['currentPassword']; + $newPassword = $_POST['newPassword']; + $confirmNewPassword = $_POST['confirmNewPassword']; + + $user = $_SESSION['user']; + + // Prüfe, ob das aktuelle Passwort korrekt ist + if (!$user->isPasswordCorrect($currentPassword)) { + header("Location: index.php?password_error=wrong_current_password"); + exit(); + } + + // Prüfe, ob die neuen Passwörter übereinstimmen + if ($newPassword !== $confirmNewPassword) { + header("Location: index.php?password_error=password_mismatch"); + exit(); + } + + // Aktualisiere das Passwort + if ($user->changePassword($currentPassword, $newPassword)) { + header("Location: index.php?password_success=1"); + exit(); + } else { + header("Location: index.php?password_error=update_failed"); + exit(); + } +} +?> \ No newline at end of file