Weitere Reviewänderungen

This commit is contained in:
2026-05-31 22:21:50 +02:00
parent f9ab3f8db2
commit 541d5b4c5e
7 changed files with 158 additions and 71 deletions
+5 -28
View File
@@ -1,32 +1,7 @@
<?php
require_once "includes/LocalUserDAO.php";
include_once 'php/controller/login-controller.php';
$dao = new LocalUserDAO();
$error = null;
/*
Verarbeitung des Login-Formulars
Funktion: Prüft Benutzerdaten und erstellt Session für eingeloggten Nutzer
*/
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$email = $_POST["email"];
$password = $_POST["password"];
$user = $dao->findUser($email);
if ($user && password_verify($password, $user["password"])) {
$_SESSION["user"] = $user["username"];
$_SESSION["user_email"] = $user["email"];
header("Location: index.php");
exit();
} else {
$error = "Login fehlgeschlagen. Bitte überprüfe deine Eingaben.";
}
}
$error = $error ?? null;
?>
<!--
@@ -39,7 +14,9 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
<h1>Bitte anmelden</h1>
<?php if ($error): ?>
<p style="color:red;"><?php echo $error; ?></p>
<p style="color:red;">
<?php echo htmlspecialchars($error); ?>
</p>
<?php endif; ?>
<form method="post" action="index.php?pfad=login">
+6 -14
View File
@@ -1,14 +1,7 @@
<?php
require_once "includes/LocalUserDAO.php";
include_once 'php/controller/profile-controller.php';
$dao = new LocalUserDAO();
if (!isset($_SESSION["user"])) {
header("Location: index.php?pfad=login");
exit();
}
$user = $dao->findUser($_SESSION["user_email"]);
$user = $user ?? null;
?>
<!--
@@ -30,7 +23,7 @@ $user = $dao->findUser($_SESSION["user_email"]);
class="login-input"
required
placeholder="Name"
value="<?php echo htmlspecialchars($user["username"]); ?>">
value="<?php echo htmlspecialchars($user["username"] ?? ""); ?>">
<label class="input-label">Email-Adresse</label>
<input type="email"
@@ -38,15 +31,13 @@ $user = $dao->findUser($_SESSION["user_email"]);
class="login-input"
required
placeholder="mustermann@web.de"
value="<?php echo htmlspecialchars($user["email"]); ?>">
value="<?php echo htmlspecialchars($user["email"] ?? ""); ?>">
<label class="input-label">Passwort</label>
<input type="password"
name="password"
class="login-input"
required
placeholder="Passwort"
value="<?php echo htmlspecialchars($user["password"]); ?>">
placeholder="Neues Passwort eingeben">
<br>
@@ -69,4 +60,5 @@ $user = $dao->findUser($_SESSION["user_email"]);
</a>
</div>
</main>
+5 -29
View File
@@ -1,33 +1,7 @@
<?php
require_once "includes/LocalUserDAO.php";
include_once 'php/controller/register-controller.php';
$dao = new LocalUserDAO();
$error = null;
/*
Verarbeitung des Registrierungs-Formulars
Funktion: Erstellt neuen Benutzer und speichert ihn im DAO + Session
*/
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$email = $_POST["email"];
$vorname = $_POST["vorname"];
$nachname = $_POST["nachname"];
$password = password_hash($_POST["password"], PASSWORD_DEFAULT);
if ($dao->findUser($email)) {
$error = "Diese E-Mail-Adresse ist bereits registriert.";
} else {
$dao->addUser($email, $vorname . " " . $nachname, $password);
$_SESSION["user"] = $vorname . " " . $nachname;
$_SESSION["user_email"] = $email;
header("Location: index.php");
exit();
}
}
$error = $error ?? null;
?>
<!--
@@ -40,7 +14,9 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
<h1>Jetzt Registrieren!</h1>
<?php if ($error): ?>
<p style="color:red;"><?php echo $error; ?></p>
<p style="color:red;">
<?php echo htmlspecialchars($error); ?>
</p>
<?php endif; ?>
<form method="post" action="index.php?pfad=register">
+52
View File
@@ -1,7 +1,59 @@
<?php
/**
* Interface für den Zugriff auf Benutzerdaten.
*
* Definiert die Methoden, die jede UserDAO-Implementierung
* bereitstellen muss.
*/
interface UserDAOInterface {
/**
* Sucht einen Benutzer anhand seiner E-Mail-Adresse.
*
* Funktion:
* Liefert die gespeicherten Benutzerdaten zu einer E-Mail-Adresse.
*
* Eingabe:
* @param string $email E-Mail-Adresse des gesuchten Benutzers
*
* Ausgabe:
* @return array|null Benutzerdaten als Array oder null,
* falls kein Benutzer gefunden wurde
*/
public function findUser($email);
/**
* Fügt einen neuen Benutzer hinzu.
*
* Funktion:
* Erstellt einen neuen Benutzereintrag und speichert ihn
* in der jeweiligen Datenquelle.
*
* Eingabe:
* @param string $email E-Mail-Adresse des Benutzers
* @param string $username Benutzername des Benutzers
* @param string $password Passwort des Benutzers
*
* Ausgabe:
* Keine Rückgabe
*
* @return void
*/
public function addUser($email, $username, $password);
/**
* Löscht einen Benutzer anhand seiner E-Mail-Adresse.
*
* Funktion:
* Entfernt einen vorhandenen Benutzer aus der Datenquelle.
*
* Eingabe:
* @param string $email E-Mail-Adresse des zu löschenden Benutzers
*
* Ausgabe:
* @return bool true, wenn der Benutzer gelöscht wurde,
* false, wenn kein passender Benutzer gefunden wurde
*/
public function deleteUser($email);
}
+30
View File
@@ -0,0 +1,30 @@
<?php
require_once "includes/LocalUserDAO.php";
$dao = new LocalUserDAO();
$error = null;
/*
Verarbeitung des Login-Formulars
Funktion: Prüft Benutzerdaten und erstellt Session für eingeloggten Nutzer
*/
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$email = $_POST["email"] ?? "";
$password = $_POST["password"] ?? "";
$user = $dao->findUser($email);
if ($user && password_verify($password, $user["password"])) {
$_SESSION["user"] = $user["username"];
$_SESSION["user_email"] = $user["email"];
header("Location: index.php");
exit();
} else {
$error = "Login fehlgeschlagen. Bitte überprüfe deine Eingaben.";
}
}
+20
View File
@@ -0,0 +1,20 @@
<?php
require_once "includes/LocalUserDAO.php";
$dao = new LocalUserDAO();
if (!isset($_SESSION["user"])) {
header("Location: index.php?pfad=login");
exit();
}
$user = $dao->findUser($_SESSION["user_email"] ?? "");
if (!$user) {
$_SESSION = [];
session_destroy();
header("Location: index.php?pfad=login");
exit();
}
+40
View File
@@ -0,0 +1,40 @@
<?php
require_once "includes/LocalUserDAO.php";
$dao = new LocalUserDAO();
$error = null;
/*
Verarbeitung des Registrierungs-Formulars
Funktion: Erstellt neuen Benutzer und speichert ihn im DAO + Session
*/
if ($_SERVER["REQUEST_METHOD"] === "POST") {
$email = $_POST["email"] ?? "";
$vorname = $_POST["vorname"] ?? "";
$nachname = $_POST["nachname"] ?? "";
$password = password_hash(
$_POST["password"] ?? "",
PASSWORD_DEFAULT
);
if ($dao->findUser($email)) {
$error = "Diese E-Mail-Adresse ist bereits registriert.";
} else {
$dao->addUser(
$email,
$vorname . " " . $nachname,
$password
);
$_SESSION["user"] = $vorname . " " . $nachname;
$_SESSION["user_email"] = $email;
header("Location: index.php");
exit();
}
}