M2 Aufgabe 8

This commit is contained in:
S170H
2023-11-10 14:39:20 +01:00
parent daa8f95cb7
commit 1b5faa0d69
4 changed files with 97 additions and 32 deletions

1
M2/.idea/php.xml generated
View File

@@ -10,6 +10,7 @@
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.0" />
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>

View File

@@ -1 +1 @@
10
55

View File

@@ -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 '<script type="text/javascript">';
echo 'alert("Vielen Dank für Ihre Anmeldung zum Newsletter.");';
echo '</script>';
} else {
echo '<script type="text/javascript">';
echo 'alert("Es gab einen Fehler bei Ihrer Anmeldung. Bitte versuchen Sie es erneut.");';
echo '</script>';
}
} else {
$error_string = "";
foreach ($errors as $error) {
$error_string .= $error . '\n';
}
echo '<script type="text/javascript">';
echo 'alert("' . $error_string . '");';
echo '</script>';
}
}
?>
@@ -164,43 +226,44 @@ if(file_exists("besucher.txt")){
/**
* Speisekarte
*/
foreach ($gerichte as $gericht){
echo "<tr class=\"speisen\"><td>".$gericht["name"]."</td><td>".$gericht["priceint"]."</td><td>".$gericht["priceex"]."</td><td><img src=".$gericht["img"]." alt=".$gericht["name"].">";
foreach ($gerichte as $gericht) {
echo "<tr class=\"speisen\"><td>" . $gericht["name"] . "</td><td>" . $gericht["priceint"] . "</td><td>" . $gericht["priceex"] . "</td><td><img src=" . $gericht["img"] . " alt=" . $gericht["name"] . ">";
}
?>
</table>
<h1 id="zahlen">E-Mensa in Zahlen</h1>
<div class="zahlen">
<p><?php echo $besucherCount;?> Besuche</p>
<p><?php echo $besucherCount; ?> Besuche</p>
<p>Y Anmeldungen zum Newsletter</p>
<p><?php echo count($gerichte);?> Speisen</p>
<p><?php echo count($gerichte); ?> Speisen</p>
</div>
<h1 id="kontakt">Interesse geweckt? Wir informieren</h1>
<div class="formular">
<div>
<label for="name">Name</label> <br>
<input type="text" name="name" id="name" placeholder="Bitte geben Sie Ihren Namen ein">
<form method="post">
<div class="formular">
<div>
<label for="name">Name:</label> <br>
<input type="text" name="name" id="name" placeholder="Bitte geben Sie Ihren Namen ein">
</div>
<div>
<label for="email">E-Mail:</label> <br>
<input type="email" name="email" id="email" placeholder="Bitte geben Sie Ihre E-Mail ein">
</div>
<div>
<label for="language">Newsletter bitte in:</label> <br>
<select name="language" id="language">
<option value="deutsch">Deutsch</option>
<option value="englisch">Englisch</option>
</select>
</div>
</div>
<div>
<label for="mail">E-Mail</label> <br>
<input type="text" name="name" id="mail" placeholder="Bitte geben Sie Ihren Namen ein">
</div>
<div>
<label for="sprache">Newsletter bitte in</label> <br>
<select name="sprache" id="sprache">
<option value="deutsch">Deutsch</option>
<option value="englisch">Englisch</option>
</select>
</div>
</div>
<br>
<input required type="checkbox" name="datenschutz" id="datenschutz"
placeholder="Bitte geben Sie Ihren Namen ein">
<label for="datenschutz">Den Datenschutzbestimmungen stimme ich zu</label>
<button type="submit">Zum Newsletter anmelden</button>
<br>
<input required type="checkbox" name="terms" id="terms">
<label for="terms">Den Datenschutzbestimmungen stimme ich zu</label>
<button type="submit">Zum Newsletter anmelden</button>
</form>
<h1 id="wichtig">Das ist uns wichtig</h1>
<div class="wichtig">
<ul class="wichtigListe">

View File

@@ -0,0 +1 @@
[{"name":"Max","email":"max@gmail.com","language":"deutsch","terms":"on"},{"name":"Max","email":"max@gmail.com","language":"deutsch","terms":"on"},{"name":"Max","email":"max@gmail.com","language":"deutsch","terms":"on"},{"name":"Max","email":"max@gmail.com","language":"deutsch","terms":"on"}]