M2 Aufgabe 8
This commit is contained in:
1
M2/.idea/php.xml
generated
1
M2/.idea/php.xml
generated
@@ -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>
|
||||
|
||||
@@ -1 +1 @@
|
||||
10
|
||||
55
|
||||
@@ -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">
|
||||
|
||||
1
M2/Werbeseite/subscriptions.json
Normal file
1
M2/Werbeseite/subscriptions.json
Normal 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"}]
|
||||
Reference in New Issue
Block a user