diff --git a/.ai/mcp/mcp.json b/.ai/mcp/mcp.json new file mode 100644 index 0000000..e69de29 diff --git a/content/register.php b/content/register.php index 78df41d..37d75ee 100644 --- a/content/register.php +++ b/content/register.php @@ -4,6 +4,8 @@ require_once "includes/UserDAO.php"; $dao = new UserDAO(); +$error = null; + /* Verarbeitung des Registrierungs-Formulars Funktion: Erstellt neuen Benutzer (Dummy) und speichert ihn im DAO + Session @@ -15,16 +17,22 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") { $nachname = $_POST["nachname"]; $password = $_POST["password"]; - // Benutzer im DAO speichern (Dummy-Daten) - $dao->addUser($email, $vorname . " " . $nachname, $password); + // Prüfen, ob die E-Mail bereits registriert ist + if ($dao->findUser($email)) { + $error = "Diese E-Mail-Adresse ist bereits registriert."; + } else { - // Session setzen = User ist eingeloggt - $_SESSION["user"] = $vorname . " " . $nachname; - $_SESSION["user_email"] = $email; + // Benutzer im DAO speichern (JSON-Dummy-Daten) + $dao->addUser($email, $vorname . " " . $nachname, $password); - // Weiterleitung zum Profil - header("Location: index.php?pfad=profile"); - exit(); + // Session setzen = User ist eingeloggt + $_SESSION["user"] = $vorname . " " . $nachname; + $_SESSION["user_email"] = $email; + + // Weiterleitung zum Profil + header("Location: index.php?pfad=profile"); + exit(); + } } ?> @@ -37,6 +45,11 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {

Jetzt Registrieren!

+ + +

+ +

Email:

diff --git a/data/users.json b/data/users.json new file mode 100644 index 0000000..fc1d1a9 --- /dev/null +++ b/data/users.json @@ -0,0 +1,7 @@ +[ + { + "email": "test@test.de", + "username": "test", + "password": "1234" + } +] \ No newline at end of file diff --git a/includes/UserDAO.php b/includes/UserDAO.php index 40e6412..a0d60ce 100644 --- a/includes/UserDAO.php +++ b/includes/UserDAO.php @@ -2,39 +2,62 @@ class UserDAO { - private static array $users = [ - [ - "email" => "test@test.de", - "username" => "test", - "password" => "1234" - ] - ]; + private string $file = "data/users.json"; + + private function loadUsers() { + if (!file_exists($this->file)) { + return []; + } + + $json = file_get_contents($this->file); + $users = json_decode($json, true); + + return is_array($users) ? $users : []; + } + + private function saveUsers($users) { + file_put_contents( + $this->file, + json_encode($users, JSON_PRETTY_PRINT) + ); + } public function findUser($email) { - foreach (self::$users as $user) { + $users = $this->loadUsers(); + + foreach ($users as $user) { if ($user["email"] === $email) { return $user; } } + return null; } public function addUser($email, $username, $password) { - self::$users[] = [ + $users = $this->loadUsers(); + + $users[] = [ "email" => $email, "username" => $username, "password" => $password ]; + + $this->saveUsers($users); } public function deleteUser($email) { - foreach (self::$users as $i => $user) { + $users = $this->loadUsers(); + + foreach ($users as $i => $user) { if ($user["email"] === $email) { - unset(self::$users[$i]); - self::$users = array_values(self::$users); + unset($users[$i]); + $users = array_values($users); + $this->saveUsers($users); return true; } } + return false; } } \ No newline at end of file