'
'database' => 'emensawerbeseite',
// optionally: set port below if it differs from the default 3306
// 'port' => 13306 // !! this is not your webserver port, but the mariadb port
diff --git a/M4/emensa/storage/cache/examples.m4_7c_gerichte_24dbedd391e1a47ee18b0686a8182fae7dda8164.bladec b/M4/emensa/storage/cache/examples.m4_7c_gerichte_24dbedd391e1a47ee18b0686a8182fae7dda8164.bladec
new file mode 100644
index 0000000..5d5fc26
--- /dev/null
+++ b/M4/emensa/storage/cache/examples.m4_7c_gerichte_24dbedd391e1a47ee18b0686a8182fae7dda8164.bladec
@@ -0,0 +1,34 @@
+
+
+
+
+ Beispiel: Daten aus der Datenbank
+
+
+
+
+
+ Es gab ein Problem mit der Datenbankverbindung
+ Fehlermeldung
+
+
+
+
+
+ Daten aus der Datenbank der Tabelle: Kategorien
+
+
+
+
+
+
+
+
+ Es sind keine Gerichte vorhanden
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/M4/emensa/storage/cache/layouts.main_layout_9f099eee303f11c8c3f1b61e05a54e7376df8add.bladec b/M4/emensa/storage/cache/layouts.main_layout_9f099eee303f11c8c3f1b61e05a54e7376df8add.bladec
new file mode 100644
index 0000000..aec0cb1
--- /dev/null
+++ b/M4/emensa/storage/cache/layouts.main_layout_9f099eee303f11c8c3f1b61e05a54e7376df8add.bladec
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+ yieldContent("header"); ?>
+
+
+
+
+yieldContent("nav"); ?>
+
+
+
+
+yieldContent("text"); ?>
+
+yieldContent("gerichte"); ?>
+
+
+
+
+
+ yieldContent("footer"); ?>
+
+
+
+
\ No newline at end of file
diff --git a/M4/emensa/storage/cache/main.index_1dae39c16001572743356f32c7852146f9bbc1ec.bladec b/M4/emensa/storage/cache/main.index_1dae39c16001572743356f32c7852146f9bbc1ec.bladec
new file mode 100644
index 0000000..a984cc4
--- /dev/null
+++ b/M4/emensa/storage/cache/main.index_1dae39c16001572743356f32c7852146f9bbc1ec.bladec
@@ -0,0 +1,62 @@
+
+
+startSection("header"); ?>
+
+stopSection(); ?>
+
+startSection("nav"); ?>
+
+
+
+
+
+
+stopSection(); ?>
+
+startSection("text"); ?>
+
+
+ Bald gibt es auch Essen online ;)
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
+ sea takimata sanctus est Lorem ipsum dolor sit amet.
+ Köstlichkeiten die Sie erwarten
+
+stopSection(); ?>
+
+startSection("gerichte"); ?>
+
+
+ Es gab ein Problem mit der Datenbankverbindung
+ Fehlermeldung
+
+
+
+
+
+
+stopSection(); ?>
+
+startSection("footer"); ?>
+
+
+ (c) E-Mensa GmbH
+ Şafak Hazinedar & Robert Joel
+ Impressum
+
+
+stopSection(); ?>
+runChild("layouts.main_layout", ['title' => "E-Mensa"]); } ?>
\ No newline at end of file
diff --git a/M5/.idea/M5.iml b/M5/.idea/M5.iml
new file mode 100644
index 0000000..f680ee5
--- /dev/null
+++ b/M5/.idea/M5.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/M5/M5.pdf b/M5/M5.pdf
new file mode 100644
index 0000000..59209cb
Binary files /dev/null and b/M5/M5.pdf differ
diff --git a/M5/beispiele/passwort.php b/M5/beispiele/passwort.php
new file mode 100644
index 0000000..2b1123e
--- /dev/null
+++ b/M5/beispiele/passwort.php
@@ -0,0 +1,7 @@
+getPostData();
+
+ $email = $data["email"] ?? NULL;
+ $passwort = $data["passwort"] ?? NULL;
+
+ $anmeldung = anmelden($email, sha1($passwort));
+
+ return view(
+
+ 'm5_a1.anmeldung_verifizieren',
+
+ [
+ 'email' => $email,
+ 'passwort' => $passwort,
+ 'anmeldung' => $anmeldung
+ ]
+ );
+ }
+
+ public function check(RequestData $rd){
+
+ $data = $rd->getPostData();
+
+ $email = $data["email"] ?? NULL;
+ $passwort = $data["passwort"] ?? NULL;
+ $anmeldung = $data["anmeldung"] ?? NULL;
+
+ return view(
+ 'm5_a1.anmeldung',
+ [
+ 'email' => $email,
+ 'passwort' => $passwort,
+ 'anmeldung' => $anmeldung,
+ 'data' => $data
+ ]
+ );
+ }
+
+
+ function abmelden(){
+
+ session_unset();
+ session_destroy();
+
+ return view(
+
+ 'm5_a1.abmeldung',
+
+ [
+
+ ]
+ );
+ }
+}
\ No newline at end of file
diff --git a/M5/emensa/models/benutzer.php b/M5/emensa/models/benutzer.php
new file mode 100644
index 0000000..4afb152
--- /dev/null
+++ b/M5/emensa/models/benutzer.php
@@ -0,0 +1,46 @@
+query($sql);
+ $row = $result->fetch_assoc();
+
+ if ($row['passwort'] == NULL) {
+ $row = 0;
+ }
+ elseif ($row['passwort'] == $passwort) {
+ session_start();
+
+ mysqli_begin_transaction($link);
+ $sql = "UPDATE benutzer SET letzteanmeldung = current_time, anzahlfehler = 0 WHERE email = '$email'";
+ $link->query($sql);
+
+ $sql = "UPDATE benutzer SET anzahlanmeldungen = anzahlanmeldungen + 1 WHERE id = ".$row['id'];
+ $link->query($sql);
+
+ mysqli_commit($link);
+
+ $_SESSION['uid'] = session_id();
+ $_SESSION['login'] = 1;
+ $_SESSION['name'] = $row['name'];
+ $_SESSION['email'] = $row['email'];
+ return 1;
+ }
+ else {
+
+ mysqli_begin_transaction($link);
+
+ $sql = "UPDATE benutzer SET anzahlfehler = anzahlfehler+1, letzterfehler = current_time WHERE email = '$email'";
+ $link->query($sql);
+
+ mysqli_commit($link);
+
+ }
+ return 0;
+}
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/.layouts.layout_933596b3f8bdab5243334e13bf36856f2a87605f.bladec b/M5/emensa/storage/cache/.layouts.layout_933596b3f8bdab5243334e13bf36856f2a87605f.bladec
new file mode 100644
index 0000000..3ef70b4
--- /dev/null
+++ b/M5/emensa/storage/cache/.layouts.layout_933596b3f8bdab5243334e13bf36856f2a87605f.bladec
@@ -0,0 +1,23 @@
+
+
+
+
+ E-Mensa Routing Script
+
+
+
+ yieldContent("cssextra"); ?>
+
+
+
+
+
+
+ yieldContent("content"); ?>
+
+
+
+yieldContent("jsextra"); ?>
+
+
+
diff --git a/M5/emensa/storage/cache/demo.demo_fc1036c569380dbc95c820cc4f5096087e39b268.bladec b/M5/emensa/storage/cache/demo.demo_fc1036c569380dbc95c820cc4f5096087e39b268.bladec
new file mode 100644
index 0000000..cc3f065
--- /dev/null
+++ b/M5/emensa/storage/cache/demo.demo_fc1036c569380dbc95c820cc4f5096087e39b268.bladec
@@ -0,0 +1,94 @@
+
+
+startSection("content"); ?>
+
+
Demo für
+
Kurze Übersicht, wie die Arbeit mit dem Router und der Blade View-Engine funktioniert.
+
+
Router
+
Der Router nimmt den Request entgegen und zerlegt ihn in die einzelnen Teile der URI. Wichtig ist hier vor
+ allem der Pfad und der Querystring.
+
Wenn der Pfad in der Routenkonfiguration (\$config Array aus der Datei
+ routes/web.php) gefunden wird, lädt der Router die angegebene Klasse.
+
+
Funktionsweise
+
Im vorliegenden Beispiel sehen Sie diese Seite ...
+
+ weil der Pfad in der Routenkonfiguration gefunden wurde
+ und dort 'DemoController@howto' hinterlegt ist
+ und im Ordner controllers/ die Datei DemoController.php gefunden werden konnte
+
+ und mit ihr ein Objekt des Typs DemoController instanziiert werden konnte
+ und dieses Objekt die Funktion (Action) howto() ausgeführt hat
+
+
Sie sehen: da muss einiges stimmen und vieles davon ist Konvention.
+
Querystrings und Pfadsegmente
+
Die Actions in den Controller-Klassen sollen per Konvention immer ein RequestData Objekt
+ entgegennehmen. Beispiel: howto(RequestData \$rd)
+
Dieses RequestData Objekt wird durch den Router befüllt, wenn Daten in der URL extrahiert werden konnten.
+
Daten finden sich URLs...
+
+
+
+
Probieren Sie es aus ;)
+ args)): ?>
+
Argumente dieses Aufrufs:
+
+ args as $a): $__empty_1 = false; ?>
+
+
+
Keine weiteren Argumente im Request
+
+
+ query)): ?>
+
Daten aus der Query dieses Aufrufs:
+
+ query as $k => $v): $__empty_1 = false; ?>
+ $rd->query['']=
+
+
+ Keine Querydaten
+
+
+
+
Blade
+
Blade muss installiert sein.
+ Die Installation ist bereits geschehen und die Bibliothek liegt unter /vendor.
+
+
Daten übergeben und View rendern
+
Bei der Verwendung der View-Engine gelten einige Konventionen:
+ Die Dateien müssen <viewname>.blade.php heißen und im Ordner views liegen.
+
+
Sie können der View dann Daten mitgeben, indem Sie alle Daten in ein Array schreiben und dieses dann
+ übergeben.
+
Beispiel:
+
+ view("viewtest",
+ array(
+ "texts"=>$textArray,
+ "persona"=>$persona,
+ "rd"=>$rd
+ )); // öffnet ../views/viewtest.blade.php
+
+
+stopSection(); ?>
+
+startSection("cssextra"); ?>
+
+stopSection(); ?>
+
+startSection("jsextra"); ?>
+
+stopSection(); ?>
+runChild(".layouts.layout"); } ?>
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/examples.m4_7c_gerichte_24dbedd391e1a47ee18b0686a8182fae7dda8164.bladec b/M5/emensa/storage/cache/examples.m4_7c_gerichte_24dbedd391e1a47ee18b0686a8182fae7dda8164.bladec
new file mode 100644
index 0000000..5d5fc26
--- /dev/null
+++ b/M5/emensa/storage/cache/examples.m4_7c_gerichte_24dbedd391e1a47ee18b0686a8182fae7dda8164.bladec
@@ -0,0 +1,34 @@
+
+
+
+
+ Beispiel: Daten aus der Datenbank
+
+
+
+
+
+ Es gab ein Problem mit der Datenbankverbindung
+ Fehlermeldung
+
+
+
+
+
+ Daten aus der Datenbank der Tabelle: Kategorien
+
+
+
+
+
+
+
+
+ Es sind keine Gerichte vorhanden
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/layouts.main_layout_3661f571e5a2129da3ca081fa828422117d3b345.bladec b/M5/emensa/storage/cache/layouts.main_layout_3661f571e5a2129da3ca081fa828422117d3b345.bladec
new file mode 100644
index 0000000..aec0cb1
--- /dev/null
+++ b/M5/emensa/storage/cache/layouts.main_layout_3661f571e5a2129da3ca081fa828422117d3b345.bladec
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+ yieldContent("header"); ?>
+
+
+
+
+yieldContent("nav"); ?>
+
+
+
+
+yieldContent("text"); ?>
+
+yieldContent("gerichte"); ?>
+
+
+
+
+
+ yieldContent("footer"); ?>
+
+
+
+
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/layouts.main_layout_9f099eee303f11c8c3f1b61e05a54e7376df8add.bladec b/M5/emensa/storage/cache/layouts.main_layout_9f099eee303f11c8c3f1b61e05a54e7376df8add.bladec
new file mode 100644
index 0000000..aec0cb1
--- /dev/null
+++ b/M5/emensa/storage/cache/layouts.main_layout_9f099eee303f11c8c3f1b61e05a54e7376df8add.bladec
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+ yieldContent("header"); ?>
+
+
+
+
+yieldContent("nav"); ?>
+
+
+
+
+yieldContent("text"); ?>
+
+yieldContent("gerichte"); ?>
+
+
+
+
+
+ yieldContent("footer"); ?>
+
+
+
+
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/m5_a1.anmeldung_c24d33e917eb7ef9d14d646f11f37749504ff5c8.bladec b/M5/emensa/storage/cache/m5_a1.anmeldung_c24d33e917eb7ef9d14d646f11f37749504ff5c8.bladec
new file mode 100644
index 0000000..d5491c4
--- /dev/null
+++ b/M5/emensa/storage/cache/m5_a1.anmeldung_c24d33e917eb7ef9d14d646f11f37749504ff5c8.bladec
@@ -0,0 +1,25 @@
+
+
+startSection("main"); ?>
+
+
+
+ Bitte anmelden!
+
+
+
+ Anmeldung erlaubt!
+ Anmeldung nicht erlaubt!
+
+
+stopSection(); ?>
+runChild("m5_a1.layout_anmeldung"); } ?>
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/m5_a1.anmeldung_verifizieren_06701b6bf7b5936abd21c6cfbe469b752d069cec.bladec b/M5/emensa/storage/cache/m5_a1.anmeldung_verifizieren_06701b6bf7b5936abd21c6cfbe469b752d069cec.bladec
new file mode 100644
index 0000000..6a52a97
--- /dev/null
+++ b/M5/emensa/storage/cache/m5_a1.anmeldung_verifizieren_06701b6bf7b5936abd21c6cfbe469b752d069cec.bladec
@@ -0,0 +1,51 @@
+
+
+startSection("main"); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bitte warten!
+
+stopSection(); ?>
+runChild("m5_a1.layout_anmeldung"); } ?>
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/m5_a1.layout_anmeldung_0bf7f1c53d4cd4970b2790535eaffcc9dddc4266.bladec b/M5/emensa/storage/cache/m5_a1.layout_anmeldung_0bf7f1c53d4cd4970b2790535eaffcc9dddc4266.bladec
new file mode 100644
index 0000000..5331778
--- /dev/null
+++ b/M5/emensa/storage/cache/m5_a1.layout_anmeldung_0bf7f1c53d4cd4970b2790535eaffcc9dddc4266.bladec
@@ -0,0 +1,21 @@
+
+
+
+
+ Layout-m5-a1
+
+
+
+
+
+ yieldContent("main"); ?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/main.index_1dae39c16001572743356f32c7852146f9bbc1ec.bladec b/M5/emensa/storage/cache/main.index_1dae39c16001572743356f32c7852146f9bbc1ec.bladec
new file mode 100644
index 0000000..a984cc4
--- /dev/null
+++ b/M5/emensa/storage/cache/main.index_1dae39c16001572743356f32c7852146f9bbc1ec.bladec
@@ -0,0 +1,62 @@
+
+
+startSection("header"); ?>
+
+stopSection(); ?>
+
+startSection("nav"); ?>
+
+
+
+
+
+
+stopSection(); ?>
+
+startSection("text"); ?>
+
+
+ Bald gibt es auch Essen online ;)
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
+ sea takimata sanctus est Lorem ipsum dolor sit amet.
+ Köstlichkeiten die Sie erwarten
+
+stopSection(); ?>
+
+startSection("gerichte"); ?>
+
+
+ Es gab ein Problem mit der Datenbankverbindung
+ Fehlermeldung
+
+
+
+
+
+
+stopSection(); ?>
+
+startSection("footer"); ?>
+
+
+ (c) E-Mensa GmbH
+ Şafak Hazinedar & Robert Joel
+ Impressum
+
+
+stopSection(); ?>
+runChild("layouts.main_layout", ['title' => "E-Mensa"]); } ?>
\ No newline at end of file
diff --git a/M5/emensa/storage/cache/main.index_9109369b5cbb1a20226820e2c52ae9625c829d43.bladec b/M5/emensa/storage/cache/main.index_9109369b5cbb1a20226820e2c52ae9625c829d43.bladec
new file mode 100644
index 0000000..a984cc4
--- /dev/null
+++ b/M5/emensa/storage/cache/main.index_9109369b5cbb1a20226820e2c52ae9625c829d43.bladec
@@ -0,0 +1,62 @@
+
+
+startSection("header"); ?>
+
+stopSection(); ?>
+
+startSection("nav"); ?>
+
+
+
+
+
+
+stopSection(); ?>
+
+startSection("text"); ?>
+
+
+ Bald gibt es auch Essen online ;)
+ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
+ dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
+ clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
+ consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
+ sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
+ sea takimata sanctus est Lorem ipsum dolor sit amet.
+ Köstlichkeiten die Sie erwarten
+
+stopSection(); ?>
+
+startSection("gerichte"); ?>
+
+
+ Es gab ein Problem mit der Datenbankverbindung
+ Fehlermeldung
+
+
+
+
+
+
+stopSection(); ?>
+
+startSection("footer"); ?>
+
+
+ (c) E-Mensa GmbH
+ Şafak Hazinedar & Robert Joel
+ Impressum
+
+
+stopSection(); ?>
+runChild("layouts.main_layout", ['title' => "E-Mensa"]); } ?>
\ No newline at end of file
diff --git a/M5/emensa/views/anmeldung/anmeldung.blade.php b/M5/emensa/views/anmeldung/anmeldung.blade.php
new file mode 100644
index 0000000..761eca9
--- /dev/null
+++ b/M5/emensa/views/anmeldung/anmeldung.blade.php
@@ -0,0 +1,31 @@
+@extends("layouts.main_layout", ['title' => "E-Mensa"])
+
+@section("header")
+
+@endsection
+
+@section("nav")
+
+
+
+
+
+
+@endsection
+
+@section("footer")
+
+
+ (c) E-Mensa GmbH
+ Şafak Hazinedar & Robert Joel
+ Impressum
+
+
+@endsection
\ No newline at end of file
diff --git a/M5/emensa/views/m5_a1/abmeldung.blade.php b/M5/emensa/views/m5_a1/abmeldung.blade.php
new file mode 100644
index 0000000..14d45dc
--- /dev/null
+++ b/M5/emensa/views/m5_a1/abmeldung.blade.php
@@ -0,0 +1,11 @@
+@extends("m5_a1.layout_anmeldung")
+
+@section("main")
+
+ @if(!isset($_SESSION['name']))
+
+
+
+ @endif
+
+@endsection
\ No newline at end of file
diff --git a/M5/emensa/views/m5_a1/anmeldung.blade.php b/M5/emensa/views/m5_a1/anmeldung.blade.php
new file mode 100644
index 0000000..283b0bc
--- /dev/null
+++ b/M5/emensa/views/m5_a1/anmeldung.blade.php
@@ -0,0 +1,23 @@
+@extends("m5_a1.layout_anmeldung")
+
+@section("main")
+
+
+
+ @if(!isset($anmeldung)) Bitte anmelden!
+ @elseif ($anmeldung == 1)
+ {{ session_start() }}
+ Anmeldung erlaubt!
+ @else Anmeldung nicht erlaubt!
+ @endif
+
+@endsection
\ No newline at end of file
diff --git a/M5/emensa/views/m5_a1/anmeldung_verifizieren.blade.php b/M5/emensa/views/m5_a1/anmeldung_verifizieren.blade.php
new file mode 100644
index 0000000..0577cba
--- /dev/null
+++ b/M5/emensa/views/m5_a1/anmeldung_verifizieren.blade.php
@@ -0,0 +1,50 @@
+@extends("m5_a1.layout_anmeldung")
+
+@section("main")
+
+ @if($anmeldung == 1)
+
+
+
+
+ @else
+
+
+
+
+ @endif
+
+
+
+ Bitte warten!
+
+@endsection
\ No newline at end of file
diff --git a/M5/emensa/views/m5_a1/layout_anmeldung.blade.php b/M5/emensa/views/m5_a1/layout_anmeldung.blade.php
new file mode 100644
index 0000000..c230204
--- /dev/null
+++ b/M5/emensa/views/m5_a1/layout_anmeldung.blade.php
@@ -0,0 +1,21 @@
+
+
+
+
+ Layout-m5-a1
+
+
+
+
+
+ @yield("main")
+
+
+
+
+
+
\ No newline at end of file
diff --git a/M5/gerichte.zip b/M5/gerichte.zip
new file mode 100644
index 0000000..c966121
Binary files /dev/null and b/M5/gerichte.zip differ