findUser($_SESSION["user_email"] ?? ""); if (!$user) { $_SESSION = []; session_destroy(); header("Location: index.php?pfad=login"); exit(); } if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["saveProfile"])) { $oldEmail = $_SESSION["user_email"]; $newEmail = trim($_POST["email"] ?? ""); $vorname = trim($_POST["vorname"] ?? ""); $nachname = trim($_POST["nachname"] ?? ""); $password = $_POST["password"] ?? ""; if (!userEmailValidator($newEmail)) { $error = "Bitte gib eine gültige E-Mail-Adresse ein."; $_GET["edit"] = "1"; } elseif (!userNameValidator($vorname)) { $error = "Der Vorname muss 2 bis 50 Zeichen lang sein und darf nur Buchstaben, Leerzeichen und Bindestriche enthalten."; $_GET["edit"] = "1"; } elseif (!userNameValidator($nachname)) { $error = "Der Nachname muss 2 bis 50 Zeichen lang sein und darf nur Buchstaben, Leerzeichen und Bindestriche enthalten."; $_GET["edit"] = "1"; } elseif (!userOptionalPasswordValidator($password)) { $error = "Das Passwort muss 8 bis 72 Zeichen lang sein."; $_GET["edit"] = "1"; } else { $updated = $dao->updateUser( $oldEmail, $newEmail, $vorname, $nachname, $password ); if ($updated) { $_SESSION["user"] = $vorname . " " . $nachname; $_SESSION["user_email"] = $newEmail; header("Location: index.php?pfad=profile"); exit(); } else { $error = "Die Daten konnten nicht gespeichert werden."; $_GET["edit"] = "1"; } } } $user = $dao->findUser($_SESSION["user_email"] ?? ""); $articleManager = ArticleManager::getInstance(); $userArticles = $articleManager->getArticlesByAuthor($_SESSION["user_email"]); if (!isset($userArticles)) { $_SESSION["message"] = "user_has_no_articles"; } } catch (InvalidArgumentException $e) { $error = $e->getMessage(); $_GET["edit"] = "1"; } catch (Exception $e) { $error = "Es ist ein interner Fehler aufgetreten. Bitte versuche es erneut."; $_SESSION["message"] = "internal_error"; $_GET["edit"] = "1"; }