<?php
if (isset($_POST['go'])) {
require("class/LevelGold.class.php");
$superhero = new LevelGold();
$valVorname = $superhero -> validate("Vorname", "notEmpty", "str", $_POST['Vorname']);
$valNachname = $superhero -> validate("Nachname", "min3", "str", $_POST['Nachname']);
$valBeruf = $superhero -> validate("Beruf", "voluntary", "str", $_POST['Beruf']);
$valEmail = $superhero -> validate("E-Mail Adresse", "notEmpty", "validMail", $_POST['Email']);
$valPassword = $superhero -> validate("Passwort", "notEmpty", "validPassword", $_POST['pw']);
$valUsername = $superhero -> validate("Username", "notEmpty", "validUsername", $_POST['Username']);
// Sind Probleme aufgetreten?
if ($superhero -> hasErrors) {
$feedback = "<div class=\"feedback_negative\">";
$feedback .= "Das Validieren ist fehlgeschlagen. Folgende Fehler sind aufgetreten:<br>";
foreach ($superhero -> errorsArr as $error) {
$feedback .= $error."<br>";
}
$feedback .= "</div>\n";
}
else {
$feedback = "<div class=\"feedback_positive\">";
$feedback .= "Alle Felder sind korrekt ausgefüllt.";
$feedback .= "</div>\n";
}
}
else {
$feedback = "<div class=\"feedback_negative\">";
$feedback .= "Das Formular wurde noch nicht verschickt. Klicke den Submit-Button!";
$feedback .= "</div>\n";
$valVorname = "";
$valNachname = "";
$valBeruf = "";
$valEmail = "";
$valPassword = "";
$valUsername = "";
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Level Gold</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Condensed&family=Roboto:ital,wght@0,400;0,500;1,400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/css/styles.css">
<link rel="stylesheet" href="/css/formstyles.css">
</head>
<body>
<div id="container">
<h1>Level Gold</h1>
<p><img src="../images/medal_gold.png" style="width: 100%; max-width: 84px; height: auto;"></p>
<p>Die Klasse im Level Silver ist zwar schon recht fortgeschritten, ist aber noch nicht perfekt. In einem Formular kann es auch freiwillig auszufüllende Felder haben und solche, die zwar obligatorisch sind, jedoch nicht weitere Anforderungen erfüllen müssen.</p>
<h3>Verbesserungen</h3>
<ol>
<li>Es sollen auch Felder verarbeitet werden, die freiwillig auszufüllen sind. Diese sollen trotzdem desinfiziert werden.</li>
<li>Obigatorische Felder sollen (bevor die weitere Validierung erfolgt) überprüft werden, ob irgend etwas eingefüllt wurde.</li>
</ol>
<!-- Ausgabe des Feedbacks -->
<?=$feedback?>
<form action="" method="post" novalidate>
<div class="form_control">
<label for="Vorname">Vorname* (darf nicht empty sein)</label>
<input type="text" name="Vorname" id="Vorname" value="<?=$valVorname?>">
</div>
<div class="form_control">
<label for="Nachname">Nachname* (Muss mind. 3 Zeichen enthalten)</label>
<input type="text" name="Nachname" id="Nachname" value="<?=$valNachname?>">
</div>
<div class="form_control">
<label for="Beruf">Beruf</label>
<input type="text" name="Beruf" id="Beruf" value="<?=$valBeruf?>">
</div>
<div class="form_control">
<label for="Email">E-Mail Adresse*</label>
<input type="email" name="Email" id="Email" value="<?=$valEmail?>" style="width: 240px;">
</div>
<div class="form_control">
<label for="pw">Passwort* (zu Übungszwecken nicht maskiert)</label>
<input type="text" name="pw" id="pw" value="<?=$valPassword?>">
</div>
<div class="form_control">
<label for="Username">Username*</label>
<input type="text" name="Username" id="Username" value="<?=$valUsername?>">
</div>
<div class="form_control">
<button type="submit" name="go" class="btn btn-blue">Verschicken</button>
</div>
</form>
</div>
</body>
</html>