diff --git a/content/confirm-password.php b/content/confirm-password.php
new file mode 100644
index 0000000..686c940
--- /dev/null
+++ b/content/confirm-password.php
@@ -0,0 +1,61 @@
+findUser($data["email"]);
+
+ if ($user !== null) {
+ $dao->updateUser(
+ $user["email"],
+ $user["email"],
+ $user["vorname"],
+ $user["nachname"],
+ $data["password"]
+ );
+ }
+
+ unlink($file);
+
+ $title = "Passwort geändert";
+ $message = "Ihr Passwort wurde erfolgreich geändert. Sie können sich jetzt anmelden.";
+ $link = 'Zum Login';
+ $isSuccess = true;
+
+ } catch (Exception $e) {
+ $message = "Das Passwort konnte nicht geändert werden.";
+ }
+ }
+}
+?>
+
+
+
+
diff --git a/content/login.php b/content/login.php
index ff05e07..c7db755 100644
--- a/content/login.php
+++ b/content/login.php
@@ -11,8 +11,8 @@ $error = $error ?? null;
Bitte anmelden
-
-
+
+
@@ -41,6 +41,12 @@ $error = $error ?? null;
anmelden
+
+
Noch keinen Account? Jetzt hier registrieren!
diff --git a/content/password-forgotten.php b/content/password-forgotten.php
new file mode 100644
index 0000000..4538b49
--- /dev/null
+++ b/content/password-forgotten.php
@@ -0,0 +1,48 @@
+
+
+
+
+
+
Passwort vergessen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/index.php b/index.php
index 0db18ae..f06eeb4 100644
--- a/index.php
+++ b/index.php
@@ -17,6 +17,9 @@ if ($pfad === "login") {
if ($pfad === "register") {
include_once "php/controller/register-controller.php";
}
+if ($pfad === "password-forgotten") {
+ include_once "php/controller/password-forgotten-controller.php";
+}
if ($pfad === "logout") {
include_once "php/controller/logout-controller.php";
diff --git a/php/controller/password-forgotten-controller.php b/php/controller/password-forgotten-controller.php
new file mode 100644
index 0000000..c2dd052
--- /dev/null
+++ b/php/controller/password-forgotten-controller.php
@@ -0,0 +1,68 @@
+findUser($email);
+
+ if (!is_dir("data/mails") && !mkdir("data/mails", 0777, true)) {
+ throw new RuntimeException("Ordner data/mails konnte nicht erstellt werden.");
+ }
+
+ if (!is_dir("data/pending-password") && !mkdir("data/pending-password", 0777, true)) {
+ throw new RuntimeException("Ordner data/pending-password konnte nicht erstellt werden.");
+ }
+
+ if (!is_writable("data/mails") || !is_writable("data/pending-password")) {
+ throw new RuntimeException("Ordner sind nicht beschreibbar.");
+ }
+
+ if ($existingUser !== null) {
+ $pendingData = [
+ "email" => $email,
+ "password" => password_hash($plainPassword, PASSWORD_DEFAULT)
+ ];
+
+ file_put_contents(
+ "data/pending-password/" . $token . ".json",
+ json_encode($pendingData, JSON_PRETTY_PRINT)
+ );
+ }
+
+ $mailContent = "
+ Passwort zurücksetzen
+ Falls Sie diese Anfrage nicht gestellt haben, können Sie diese Nachricht ignorieren.
+
+
+ Passwortänderung bestätigen
+
+
+ ";
+
+ file_put_contents("data/mails/" . $token . ".html", $mailContent);
+
+ $success = 'Weitere Infos finden Sie in der Datei
+ xy.';
+
+ } catch (Exception $e) {
+ $error = "Die Passwortänderung konnte nicht verarbeitet werden.";
+ }
+ }
+}