From 10f115ddd4f3a0f29f07b8a884db8b14d751b2ad Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 30 Aug 2024 21:45:00 +0200 Subject: [PATCH] erste push --- .htaccess | 8 +++ add.php | 126 ++++++++++++++++++++++++++++++++++++++++++++++ css/style.css | 4 ++ delete.php | 29 +++++++++++ edit.php | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++ index.php | 62 +++++++++++++++++++++++ recover.php | 94 ++++++++++++++++++++++++++++++++++ tiere.json | 50 +++++++++++++++++++ 8 files changed, 509 insertions(+) create mode 100644 .htaccess create mode 100644 add.php create mode 100644 css/style.css create mode 100644 delete.php create mode 100644 edit.php create mode 100644 index.php create mode 100644 recover.php create mode 100644 tiere.json diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..1be401c --- /dev/null +++ b/.htaccess @@ -0,0 +1,8 @@ +#ErrorDocument 404 https://codemich.de/404.php + +#Alternate default index pages +DirectoryIndex index.php + +RewriteEngine On +RewriteCond %{SERVER_PORT} !^443$ +RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L] \ No newline at end of file diff --git a/add.php b/add.php new file mode 100644 index 0000000..4cbcbfd --- /dev/null +++ b/add.php @@ -0,0 +1,126 @@ +{$error}

"; + } + exit; + } + + // Eingabedaten bereinigen + $input = array( + 'id' => htmlspecialchars($_POST['id'], ENT_QUOTES, 'UTF-8'), + 'name' => htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'), + 'wissenschaftlicher_name' => htmlspecialchars($_POST['wissenschaftlicher_name'], ENT_QUOTES, 'UTF-8'), + 'beschreibung' => htmlspecialchars($_POST['beschreibung'], ENT_QUOTES, 'UTF-8'), + 'lebensraum' => htmlspecialchars($_POST['lebensraum'], ENT_QUOTES, 'UTF-8'), + 'nahrung' => htmlspecialchars($_POST['nahrung'], ENT_QUOTES, 'UTF-8') + ); + + // JSON-Datei öffnen + $data = file_get_contents('tiere.json'); + $data = json_decode($data, true); + + if ($data === null) { + $data = []; + } + + // Neue Daten hinzufügen + $data[] = $input; + + // JSON-Datei speichern + $data = json_encode($data, JSON_PRETTY_PRINT); + if (file_put_contents('tiere.json', $data) === false) { + echo "

Fehler beim Speichern der Daten.

"; + exit; + } + + // Umleitung + header('Location: index.php'); + exit; +} +?> + + + + + + Tiere in unserem Kleingarten + + + +
+

Tiere in unserem Kleingarten

+
+
+
Zurück +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + + +
+
+
+
+
+ + \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..171442b --- /dev/null +++ b/css/style.css @@ -0,0 +1,4 @@ +.btn-primary2 { + background-color: #ac2222; + color: white; + } diff --git a/delete.php b/delete.php new file mode 100644 index 0000000..0fabbd0 --- /dev/null +++ b/delete.php @@ -0,0 +1,29 @@ + \ No newline at end of file diff --git a/edit.php b/edit.php new file mode 100644 index 0000000..76dde69 --- /dev/null +++ b/edit.php @@ -0,0 +1,136 @@ +Ungültiger Index.

"; + exit; + } + $index = (int) $_GET['index']; + + // JSON-Daten holen + $data = file_get_contents('tiere.json'); + $data_array = json_decode($data, true); // true für assoziatives Array + + // Fehlerbehandlung, falls das JSON ungültig ist oder der Index nicht existiert + if ($data_array === null || !isset($data_array[$index])) { + echo "

Daten konnten nicht geladen werden oder der Index ist ungültig.

"; + exit; + } + + // Daten dem ausgewählten Index zuweisen + $row = $data_array[$index]; + + if (isset($_POST['save'])) { + $errors = []; + + // Eingabedaten validieren + if (empty($_POST['id'])) { + $errors[] = 'ID ist erforderlich.'; + } + if (empty($_POST['name'])) { + $errors[] = 'Name ist erforderlich.'; + } + if (empty($_POST['wissenschaftlicher_name'])) { + $errors[] = 'Wissenschaftlicher Name ist erforderlich.'; + } + if (empty($_POST['beschreibung'])) { + $errors[] = 'Beschreibung ist erforderlich.'; + } + if (empty($_POST['lebensraum'])) { + $errors[] = 'Lebensraum ist erforderlich.'; + } + if (empty($_POST['nahrung'])) { + $errors[] = 'Nahrung ist erforderlich.'; + } + + // Fehler anzeigen, falls vorhanden + if (!empty($errors)) { + foreach ($errors as $error) { + echo "

{$error}

"; + } + } else { + // Eingaben bereinigen, um Sicherheit zu gewährleisten + $input = array( + 'id' => htmlspecialchars($_POST['id'], ENT_QUOTES, 'UTF-8'), + 'name' => htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'), + 'wissenschaftlicher_name' => htmlspecialchars($_POST['wissenschaftlicher_name'], ENT_QUOTES, 'UTF-8'), + 'beschreibung' => htmlspecialchars($_POST['beschreibung'], ENT_QUOTES, 'UTF-8'), + 'lebensraum' => htmlspecialchars($_POST['lebensraum'], ENT_QUOTES, 'UTF-8'), + 'nahrung' => htmlspecialchars($_POST['nahrung'], ENT_QUOTES, 'UTF-8') + ); + + // Ausgewählten Index aktualisieren + $data_array[$index] = $input; + + // JSON-Daten zurückschreiben + $data = json_encode($data_array, JSON_PRETTY_PRINT); + if (file_put_contents('tiere.json', $data) === false) { + echo "

Fehler beim Speichern der Daten.

"; + exit; + } + + // Umleitung zur Hauptseite + header('Location: index.php'); + exit; + } + } +?> + + + + + Tiere in unserem Kleingarten + + + + +
+

Tiere in unserem Kleingarten

+
+
+
Zurück +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + + \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..03f0a13 --- /dev/null +++ b/index.php @@ -0,0 +1,62 @@ + + + + + Tiere in unserem Kleingarten + + + + + +
+

Tiere in unserem Kleingarten

+
+
+ Hinzufügen + + JSON wiederherstellen + + + + + + + + + + + + + + + + + + + + "; + + $index++; + } + ?> + +
IDNameWissenschaftlicher NameBeschreibungLebensraumNahrung
".$row->id."".$row->name."".$row->wissenschaftlicher_name."".$row->beschreibung."".$row->lebensraum."".$row->nahrung." + Bearbeiten + Löschen +
+
+
+
+ + \ No newline at end of file diff --git a/recover.php b/recover.php new file mode 100644 index 0000000..6b61b63 --- /dev/null +++ b/recover.php @@ -0,0 +1,94 @@ + + + + + + + JSON Wiederherstellung + + + + +

Wiederherstellen

+ + + + "0", + "name" => "Feldhase", + "wissenschaftlicher_name" => "Lepus europaeus", + "beschreibung" => "Der Feldhase ist ein großes, schlankes Säugetier mit langen Ohren und kräftigen Hinterbeinen. Er ist oft in offenen Landschaften und Gärten zu finden.", + "lebensraum" => "Wiesen, Felder, Gärten", + "nahrung" => "Gräser, Kräuter, Gemüse" + ], + [ + "id" => "1", + "name" => "Feldwespe", + "wissenschaftlicher_name" => "Polistes dominula", + "beschreibung" => "Die Feldwespe ist eine kleine Wespenart mit gelb-schwarzer Zeichnung. Sie baut ihre Nester aus Papiermasse an geschützten Stellen wie unter Dächern oder in Gebüschen.", + "lebensraum" => "Gärten, Wiesen, Hecken", + "nahrung" => "Insekten, Nektar" + ], + [ + "id" => "2", + "name" => "Balkenschröter", + "wissenschaftlicher_name" => "Dorcus parallelipipedus", + "beschreibung" => "Der Balkenschröter ist ein mittelgroßer Käfer mit einer flachen, schwarzen Körperform. Er ist oft in Laubwäldern zu finden und ernährt sich von totem Holz.", + "lebensraum" => "Wälder, Gärten, alte Bäume", + "nahrung" => "Totes Holz, Baumsaft" + ], + [ + "id" => "3", + "name" => "Amsel", + "wissenschaftlicher_name" => "Turdus merula", + "beschreibung" => "Die Amsel ist ein bekannter Singvogel mit einem charakteristischen schwarzen Gefieder beim Männchen und braunem Gefieder beim Weibchen. Sie ist häufig in Gärten und Parks anzutreffen.", + "lebensraum" => "Gärten, Wälder, Parks", + "nahrung" => "Würmer, Insekten, Beeren" + ], + [ + "id" => "4", + "name" => "Grünspecht", + "wissenschaftlicher_name" => "Picus viridis", + "beschreibung" => "Der Grünspecht ist ein großer Spechtvogel mit grünem Gefieder und einem roten Scheitel. Er ist bekannt für seine Vorliebe, Ameisen aus dem Boden zu picken.", + "lebensraum" => "Wälder, Gärten, Obstgärten", + "nahrung" => "Ameisen, Insekten, Larven" + ], + [ + "id" => "5", + "name" => "Buntspecht", + "wissenschaftlicher_name" => "Dendrocopos major", + "beschreibung" => "Der Buntspecht ist ein mittelgroßer Spechtvogel mit markantem schwarz-weißem Gefieder und roten Federn am Bauch. Er ist in Wäldern und Gärten weit verbreitet.", + "lebensraum" => "Wälder, Gärten, Parks", + "nahrung" => "Insekten, Larven, Baumsäfte" + ] +]; + +// Kodieren des ursprünglichen Inhalts als JSON +$json_data = json_encode($original_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); + +// Schreiben der Daten in die Datei +if (file_put_contents($json_file, $json_data) === false) { + echo "Fehler beim Wiederherstellen der JSON-Datei."; +} else { + echo "JSON-Datei wurde erfolgreich wiederhergestellt."; +} + +// Umleitung zurück zur Index-Seite +echo ''; +exit; +?> \ No newline at end of file diff --git a/tiere.json b/tiere.json new file mode 100644 index 0000000..b8e4f90 --- /dev/null +++ b/tiere.json @@ -0,0 +1,50 @@ +[ + { + "id": "0", + "name": "Feldhase", + "wissenschaftlicher_name": "Lepus europaeus", + "beschreibung": "Der Feldhase ist ein großes, schlankes Säugetier mit langen Ohren und kräftigen Hinterbeinen. Er ist oft in offenen Landschaften und Gärten zu finden.", + "lebensraum": "Wiesen, Felder, Gärten", + "nahrung": "Gräser, Kräuter, Gemüse" + }, + { + "id": "1", + "name": "Feldwespe", + "wissenschaftlicher_name": "Polistes dominula", + "beschreibung": "Die Feldwespe ist eine kleine Wespenart mit gelb-schwarzer Zeichnung. Sie baut ihre Nester aus Papiermasse an geschützten Stellen wie unter Dächern oder in Gebüschen.", + "lebensraum": "Gärten, Wiesen, Hecken", + "nahrung": "Insekten, Nektar" + }, + { + "id": "2", + "name": "Balkenschröter", + "wissenschaftlicher_name": "Dorcus parallelipipedus", + "beschreibung": "Der Balkenschröter ist ein mittelgroßer Käfer mit einer flachen, schwarzen Körperform. Er ist oft in Laubwäldern zu finden und ernährt sich von totem Holz.", + "lebensraum": "Wälder, Gärten, alte Bäume", + "nahrung": "Totes Holz, Baumsaft" + }, + { + "id": "3", + "name": "Amsel", + "wissenschaftlicher_name": "Turdus merula", + "beschreibung": "Die Amsel ist ein bekannter Singvogel mit einem charakteristischen schwarzen Gefieder beim Männchen und braunem Gefieder beim Weibchen. Sie ist häufig in Gärten und Parks anzutreffen.", + "lebensraum": "Gärten, Wälder, Parks", + "nahrung": "Würmer, Insekten, Beeren" + }, + { + "id": "4", + "name": "Grünspecht", + "wissenschaftlicher_name": "Picus viridis", + "beschreibung": "Der Grünspecht ist ein großer Spechtvogel mit grünem Gefieder und einem roten Scheitel. Er ist bekannt für seine Vorliebe, Ameisen aus dem Boden zu picken.", + "lebensraum": "Wälder, Gärten, Obstgärten", + "nahrung": "Ameisen, Insekten, Larven" + }, + { + "id": "5", + "name": "Buntspecht", + "wissenschaftlicher_name": "Dendrocopos major", + "beschreibung": "Der Buntspecht ist ein mittelgroßer Spechtvogel mit markantem schwarz-weißem Gefieder und roten Federn am Bauch. Er ist in Wäldern und Gärten weit verbreitet.", + "lebensraum": "Wälder, Gärten, Parks", + "nahrung": "Insekten, Larven, Baumsäfte" + } +] \ No newline at end of file