From 0556dec11d154155c1da5541adee30108addee6c Mon Sep 17 00:00:00 2001 From: Christopher Date: Tue, 5 May 2026 08:28:50 +0000 Subject: [PATCH] Vorbereitung Version 2 --- projekt_v2/db.inc.php | 14 ++++ projekt_v2/index.php | 63 ++++++++++++++++ projekt_v2/login.inc.php | 13 ++++ projekt_v2/login.php | 104 +++++++++++++++++++++++++++ projekt_v2/loginfehler.php | 33 +++++++++ projekt_v2/logout.php | 14 ++++ projekt_v2/nav.php | 3 + projekt_v2/navmitglieder.php | 1 + projekt_v2/plausi.inc.php | 64 +++++++++++++++++ projekt_v2/regfehler.php | 32 +++++++++ projekt_v2/registrieren.inc.php | 57 +++++++++++++++ projekt_v2/registrieren.php | 124 ++++++++++++++++++++++++++++++++ 12 files changed, 522 insertions(+) create mode 100644 projekt_v2/db.inc.php create mode 100644 projekt_v2/index.php create mode 100644 projekt_v2/login.inc.php create mode 100644 projekt_v2/login.php create mode 100644 projekt_v2/loginfehler.php create mode 100644 projekt_v2/logout.php create mode 100644 projekt_v2/nav.php create mode 100644 projekt_v2/navmitglieder.php create mode 100644 projekt_v2/plausi.inc.php create mode 100644 projekt_v2/regfehler.php create mode 100644 projekt_v2/registrieren.inc.php create mode 100644 projekt_v2/registrieren.php diff --git a/projekt_v2/db.inc.php b/projekt_v2/db.inc.php new file mode 100644 index 0000000..47dd56c --- /dev/null +++ b/projekt_v2/db.inc.php @@ -0,0 +1,14 @@ +getMessage()); +} + +?> \ No newline at end of file diff --git a/projekt_v2/index.php b/projekt_v2/index.php new file mode 100644 index 0000000..faa50fb --- /dev/null +++ b/projekt_v2/index.php @@ -0,0 +1,63 @@ + version_compare(PHP_VERSION, '7')) { + die('

Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig'); +} +?> + + + + + + + + Image2Food - Sag mir was ich daraus kochen kann - Index + + + +
+

Image2Food - Sag mir was ich daraus kochen kann

+

Das soziale, multimediale Netzwerk für Kochideen

+

Mitgliederbereich


Sie sind Angemeldet
"; + } elseif (isset($_SESSION["login"]) && ($_SESSION["login"] == "false")){ + echo "
Sie können sich jetzt zum Mitgliederbereich anmelden.
"; + } elseif (isset($_COOKIE['Image2Food'])){ + echo "
Schön Sie wieder zu sehen. Melden Sie sich an, um in den geschlossenen Mitgliederbereich zu gelangen, wenn Sie sich schon registriert haben.
"; + } else { + echo "
Willkommen auf unserer Webseite. Schauen Die sich um. Sie können sich hier registrieren und dann in einem geschlossenen Mitgliederbereich anmelden.
"; + } + } + } + $obj = new Index(); + $obj -> besucher(); + ?> + + + + \ No newline at end of file diff --git a/projekt_v2/login.inc.php b/projekt_v2/login.inc.php new file mode 100644 index 0000000..a61fbc4 --- /dev/null +++ b/projekt_v2/login.inc.php @@ -0,0 +1,13 @@ +
+ + * + + +
+ + * + + +
+ +
\ No newline at end of file diff --git a/projekt_v2/login.php b/projekt_v2/login.php new file mode 100644 index 0000000..2a7753a --- /dev/null +++ b/projekt_v2/login.php @@ -0,0 +1,104 @@ + version_compare(PHP_VERSION, '7')) { + die('

Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig'); +} + +session_start(); + +?> + + + + + + + Image2Food - Sag mir was ich daraus kochen kann - login + + + +
+

Login

+ plausiblisieren()) { + $this->anmelden_db(); + } + } + + /** + * Plausiblisierungsmethode + * Testet die einzelnen Eingabefelder des Registrierungsformulars gegenüber + * - den Notwendigkeiten in der MySQL-Datenbank und + * - weiteren Anforderungen, die die Logik des Netzwerks fordert + * Die Eingaben stehen im globalen Array $_POST zur Verfügung + * @return true, wenn die Plausiblisierung keine Fehler ergab - sonst false + */ + + private function plausiblisieren() { + // Fehlervariable + $anmelden = 0; + + $p = new Plausi(); + $anmelden += $p->nutzerdatentest($_POST['userid']); + $anmelden += $p->nutzerdatentest($_POST['pw']); + + // Testausgaben für den derzeitigen Stand des Projekts + echo "Die Eingaben:
"; + print_r($_POST); + echo "
Fehleranzahl: " . $anmelden . "
"; + if ($anmelden == 0) return true; + else return false; + } + + private function anmelden_db() { + $vorhanden = false; + require("db.inc.php"); + if ($stmt = $pdo->prepare("SELECT userid, pw FROM mitglieder")) + { + $stmt -> execute(); + while ($row = $stmt -> fetch()) { + if (isset($_POST["userid"]) && $_POST["userid"] == $row['userid'] && md5($_POST["pw"]) == $row['pw']); { + $vorhanden = true; + break; + } + } + } + + if ($vorhanden) { + $_SESSION["name"] = $_POST["userid"]; + $_SESSION["login"] = "true"; + $dat = "index.php"; + } + else { + $dat = "loginfehler.php"; + } + header("Location: $dat"); + } + } + + $regobj = new Login(); + if (sizeof($_POST) > 0) { + $regobj->_login(); + } + ?> +
+ + + \ No newline at end of file diff --git a/projekt_v2/loginfehler.php b/projekt_v2/loginfehler.php new file mode 100644 index 0000000..d4149b5 --- /dev/null +++ b/projekt_v2/loginfehler.php @@ -0,0 +1,33 @@ + version_compare(PHP_VERSION, '7')) { + die('

Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig'); +} + +?> + + + + + + + Image2Food - Sag mir was ich daraus kochen kann - Index + + + +
+

Anmeldefehler

+ Die Anmeldedaten waren leider falsch

". "Neu Anmelden"; + } + } + $loginobj = new LoginFehler(); + $loginobj -> fehler(); + ?> + + + \ No newline at end of file diff --git a/projekt_v2/logout.php b/projekt_v2/logout.php new file mode 100644 index 0000000..7842807 --- /dev/null +++ b/projekt_v2/logout.php @@ -0,0 +1,14 @@ + ausloggen(); +?> \ No newline at end of file diff --git a/projekt_v2/nav.php b/projekt_v2/nav.php new file mode 100644 index 0000000..a4f38cb --- /dev/null +++ b/projekt_v2/nav.php @@ -0,0 +1,3 @@ +Home +Registrieren +Login diff --git a/projekt_v2/navmitglieder.php b/projekt_v2/navmitglieder.php new file mode 100644 index 0000000..23bd50a --- /dev/null +++ b/projekt_v2/navmitglieder.php @@ -0,0 +1 @@ +Logout \ No newline at end of file diff --git a/projekt_v2/plausi.inc.php b/projekt_v2/plausi.inc.php new file mode 100644 index 0000000..7999206 --- /dev/null +++ b/projekt_v2/plausi.inc.php @@ -0,0 +1,64 @@ + \ No newline at end of file diff --git a/projekt_v2/regfehler.php b/projekt_v2/regfehler.php new file mode 100644 index 0000000..6ec199c --- /dev/null +++ b/projekt_v2/regfehler.php @@ -0,0 +1,32 @@ + version_compare(PHP_VERSION, '7')) { + die('

Für diese Anwendung ist mindestens PHP 7 notwendig'); +} +?> + + + + + + Image2Food - Sag mir was ich daraus kochen kann - Index + + + +
+

Registrierungsfehler

+ Die Registrierung hat leider nicht funktioniert

". "
Wählen Sie eine andere Userid und versuchen Sie es erneut.
"; + } + } + $regobj = new RegFehler(); + $regobj -> fehler() + ?> + + + + diff --git a/projekt_v2/registrieren.inc.php b/projekt_v2/registrieren.inc.php new file mode 100644 index 0000000..6a4d4fc --- /dev/null +++ b/projekt_v2/registrieren.inc.php @@ -0,0 +1,57 @@ +
+ + * + + /> + +
+ + * + + /> + +
+ + * + + /> + +
+ + * + + +
+ + * + + +
+ + + + +
+ +
\ No newline at end of file diff --git a/projekt_v2/registrieren.php b/projekt_v2/registrieren.php new file mode 100644 index 0000000..a9bc42d --- /dev/null +++ b/projekt_v2/registrieren.php @@ -0,0 +1,124 @@ + version_compare(PHP_VERSION, '7')) { + die('

Für diese Anwendung ' . 'ist mindestens PHP 7 notwendig'); +} + +?> + + + + + + + Image2Food - Sag mir was ich daraus kochen kann - Regestrierung + + + +
+

Registrierung

+ plausiblisieren()) { + $this->eintragen_db(); + } + } + + /** + * Plausiblisierungsmethode + * Testet die einzelnen Eingabefelder des Registrierungsformulars gegenüber + * - den Notwendigkeiten in der MySQL-Datenbank und + * - weiteren Anforderungen, die die Logik des Netzwerks fordert + * Die Eingaben stehen im globalen Array $_POST zur Verfügung + * @return true, wenn die Plausiblisierung keine Fehler ergab - sonst false + */ + + private function plausiblisieren() { + // Fehlervariable + $anmelden = 0; + + $p = new Plausi(); + $anmelden += $p->namentest($_POST['name']); + $anmelden += $p->namentest($_POST['vorname']); + $anmelden += $p->emailtest($_POST['email']); + $anmelden += $p->nutzerdatentest($_POST['userid']); + $anmelden += $p->nutzerdatentest($_POST['pw']); + + //Kritische Zeichen aus der freien Eingabe der Zusatzinfos eleminieren + + $_POST['zusatzinfos'] = preg_replace("/[<>$\%&§]/", "#", $_POST['zusatzinfos']); + + // Testausgaben für den derzeitigen Stand des Projekts + echo "Die Eingaben:
"; + print_r($_POST); + echo "
Fehleranzahl: " . $anmelden . "
"; + if ($anmelden == 0) return true; + else return false; + } + + /** + * Eintragen der Anmeldedaten in die Datenbank + * Die Eingaben stehen im Array $_POST zur Verfügung + */ + + private function eintragen_db() { + require ("db.inc.php"); + try { + $stmt = $pdo->prepare("INSERT INTO mitglieder ( + name, vorname, email, zusatzinfos, rolle, userid, pw) + VALUES (:name, :vorname, :email, :zusatzinfos, :rolle, + :userid, :pw)"); + + $stmt->execute(array( + ':name' => $_POST["name"], + ':vorname' => $_POST["vorname"], + ':email' => $_POST["email"], + ':zusatzinfos' => $_POST["zusatzinfos"], + ':rolle' => "Mitglied", + ':userid' => $_POST["userid"], + ':pw' => md5($_POST["pw"]) + )); + + $_SESSION["name"] = $_POST["userid"]; + $_SESSION["login"] = "false"; + $dat = "index.php"; + } + catch (PDOException $e) { + error_log("Registrierungsfehler: " . $e->getMessage()); // Log für Admins + $dat = "regfehler.php"; + + } + + header("Location: $dat"); + } + + } + $regobj = new Registrierung(); + if (sizeof($_POST) > 0) { + $regobj -> registrieren(); + } + ?> +
+ + + \ No newline at end of file