From 1b5faa0d69e292e2649269e271b773eaad28f5d1 Mon Sep 17 00:00:00 2001
From: S170H <64917343+S170H@users.noreply.github.com>
Date: Fri, 10 Nov 2023 14:39:20 +0100
Subject: [PATCH] M2 Aufgabe 8
---
M2/.idea/php.xml | 1 +
M2/Werbeseite/besucher.txt | 2 +-
M2/Werbeseite/index.php | 125 +++++++++++++++++++++++--------
M2/Werbeseite/subscriptions.json | 1 +
4 files changed, 97 insertions(+), 32 deletions(-)
create mode 100644 M2/Werbeseite/subscriptions.json
diff --git a/M2/.idea/php.xml b/M2/.idea/php.xml
index f324872..a85fe78 100644
--- a/M2/.idea/php.xml
+++ b/M2/.idea/php.xml
@@ -10,6 +10,7 @@
+
diff --git a/M2/Werbeseite/besucher.txt b/M2/Werbeseite/besucher.txt
index 9a03714..7c6ba0f 100644
--- a/M2/Werbeseite/besucher.txt
+++ b/M2/Werbeseite/besucher.txt
@@ -1 +1 @@
-10
\ No newline at end of file
+55
\ No newline at end of file
diff --git a/M2/Werbeseite/index.php b/M2/Werbeseite/index.php
index d127a9f..838e953 100644
--- a/M2/Werbeseite/index.php
+++ b/M2/Werbeseite/index.php
@@ -9,19 +9,81 @@ include "gerichte.php";
$besucherCount = 0;
-if(file_exists("besucher.txt")){
+if (file_exists("besucher.txt")) {
$besucherFile = fopen("besucher.txt", "r");
- $besucherCount = fgets($besucherFile) +1;
+ $besucherCount = fgets($besucherFile) + 1;
fclose($besucherFile);
$besucherFile = fopen("besucher.txt", "w");
fwrite($besucherFile, $besucherCount);
fclose($besucherFile);
-}else{
+} else {
$besucherFile = fopen("besucher.txt", "w");
fwrite($besucherFile, 1);
fclose($besucherFile);
}
+if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+ $name = $_POST['name'];
+ $email = $_POST['email'];
+ $language = $_POST['language'];
+ $terms = $_POST['terms'];
+
+ $errors = array();
+
+ if (empty(trim($name))) {
+ $errors[] = "Bitte geben Sie einen Namen ein.";
+ }
+
+ if (!isset($terms)) {
+ $errors[] = "Bitte stimmen Sie den Datenschutzbestimmungen zu.";
+ }
+
+ if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
+ $errors[] = "Bitte geben Sie eine gültige E-Mail-Adresse ein.";
+ }
+
+ $spam_domains = array("rcpt.at", "damnthespam.at", "wegwerfmail.de", "trashmail");
+
+ foreach ($spam_domains as $domain) {
+ if (str_contains($email, $domain)) {
+ $errors[] = "Bitte geben Sie eine gültige E-Mail-Adresse ein, keine Wegwerf- oder Spam-E-Mail-Adresse.";
+ break;
+ }
+ }
+
+ if (empty($errors)) {
+ $data = array(
+ "name" => $name,
+ "email" => $email,
+ "language" => $language,
+ "terms" => $terms
+ );
+
+ $file = "subscriptions.json";
+ $current_data = file_exists($file) ? json_decode(file_get_contents($file), true) : array();
+ $current_data[] = $data;
+
+ if (file_put_contents($file, json_encode($current_data))) {
+ echo '';
+ } else {
+ echo '';
+ }
+ } else {
+ $error_string = "";
+ foreach ($errors as $error) {
+ $error_string .= $error . '\n';
+ }
+
+ echo '';
+ }
+}
+
?>
@@ -164,43 +226,44 @@ if(file_exists("besucher.txt")){
/**
* Speisekarte
*/
-
-
-
- foreach ($gerichte as $gericht){
- echo "
".$gericht["name"]." ".$gericht["priceint"]." ".$gericht["priceex"]." ";
+ foreach ($gerichte as $gericht) {
+ echo "" . $gericht["name"] . " " . $gericht["priceint"] . " " . $gericht["priceex"] . " ";
}
?>
E-Mensa in Zahlen
-
Besuche
+
Besuche
Y Anmeldungen zum Newsletter
-
Speisen
+
Speisen
Interesse geweckt? Wir informieren
-