Improved error handling.

This commit is contained in:
2024-11-13 00:42:37 +01:00
parent 6f18dd1ef9
commit d6bd4aebc2

100
index.php
View File

@@ -74,8 +74,8 @@
* Mail-Kram * Mail-Kram
*/ */
$mail_to = "jandop@yahoo.de"; //$mail_to = "jandop@yahoo.de";
//$mail_to = "sockenklaus@gmail.com"; $mail_to = "sockenklaus@gmail.com";
$subject = "Rundkopfschlitzschrauben - Bestellformular"; $subject = "Rundkopfschlitzschrauben - Bestellformular";
/* /*
@@ -90,69 +90,67 @@
* *
*/ */
$mail_from = isset($_POST['email']) ? $_POST['email'] : ''; $mail_from = isset($_POST['email']) ? trim($_POST['email']) : '';
$name = isset($_POST['name']) ? $_POST['name'] : ''; $name = isset($_POST['name']) ? trim($_POST['name']) : '';
$strasse = isset($_POST['strasse']) ? $_POST['strasse'] : ''; $strasse = isset($_POST['strasse']) ? trim($_POST['strasse']) : '';
$stadt = isset($_POST['stadt']) ? $_POST['stadt'] : ''; $stadt = isset($_POST['stadt']) ? trim($_POST['stadt']) : '';
$plz = isset($_POST['plz']) ? $_POST['plz'] : ''; $plz = isset($_POST['plz']) ? trim($_POST['plz']) : '';
$telefon = isset($_POST['telefon']) ? $_POST['telefon'] : ''; $telefon = isset($_POST['telefon']) ? trim($_POST['telefon']) : '';
$schrauben = isset($_POST['schrauben']) ? $_POST['schrauben'] : []; $schrauben = isset($_POST['schrauben']) ? $_POST['schrauben'] : [];
$notiz = isset($_POST['notiz']) ? $_POST['notiz'] : ''; $notiz = isset($_POST['notiz']) ? trim($_POST['notiz']) : '';
$sparpaket = isset($_POST['sparpaket']) ? $_POST['sparpaket'] : ''; $senden = isset($_POST['senden']) ? $_POST['senden'] : '';
$senden = isset($_POST['senden']) ? $_POST['senden'] : '';
$status = ''; $status = '';
$mengen = ''; $mengen = '';
$text = ''; $text = '';
$ok = false; $ok = true;
$form_errors = []; $form_errors = [];
$screw_errors = []; $screw_errors = [];
if ($senden == "Abschicken") { if ($senden == "Abschicken") {
foreach ($schrauben as $key => $value) { foreach ($schrauben as $key => $value) {
if ($value >= 10) { if (is_numeric($value)) {
$mengen .= "$key: $value\n"; if ($value >= 10) {
$mengen .= "$key: $value\n";
}
elseif ($value > 0 && $value < 10) {
$screw_errors[$key] = "Es müssen mindestens 10 Schrauben bestellt werden.";
$ok = false;
}
} }
elseif ($value > 0 && $value < 10) { else {
$status .= "Es müssen mindestens 10 Schrauben bestellt werden.<br />"; $screw_errors[$key] = "Ungültige Eingabe.";
$screw_errors[$key] = "Es müssen mindestens 10 Schrauben bestellt werden.";
$ok = false; $ok = false;
} }
} }
if (empty($mail_from)) {
$status .= "Bitte Mailadresse angeben.<br />";
$form_errors[] = "Bitte E-Mail-Adresse angeben";
$ok = false;
}
if (empty($name)) { if (empty($name)) {
$status .= "Bitte Name / Vorname angeben.<br />";
$form_errors[] = "Bitte Name / Vorname angeben."; $form_errors[] = "Bitte Name / Vorname angeben.";
$ok = false; $ok = false;
} }
if (empty($strasse)) { if (empty($strasse)) {
$status .= "Bitte Straße und Hausnummer angeben.<br />";
$form_errors[] = "Bitte Straße und Hausnummer angeben."; $form_errors[] = "Bitte Straße und Hausnummer angeben.";
$ok = false; $ok = false;
} }
if (empty($stadt)) {
$status .= "Bitte Stadt angeben.<br />";
$form_errors[] = "Bitte Stadt angeben.";
$ok = false;
}
if (empty($plz)) { if (empty($plz)) {
$status .= "Bitte Postleitzahl eingeben.<br />";
$form_errors[] = "Bitte Postleitzahl angeben."; $form_errors[] = "Bitte Postleitzahl angeben.";
$ok = false; $ok = false;
} }
if (empty($telefon)) {
$status .= "Bitte eine Telefonnummer angeben.<br />"; if (empty($stadt)) {
$form_errors[] = "Bitte Telefonnummer angeben."; $form_errors[] = "Bitte Stadt angeben.";
$ok = false; $ok = false;
} }
if (empty($mail_from)) {
$form_errors[] = "Bitte E-Mail-Adresse angeben";
$ok = false;
}
if (empty($mengen)) { if (empty($mengen)) {
$status .= "Es muss mindestens ein Schraubentyp bestellt werden.";
$form_errors[] = "Es muss mindestens ein Schraubentyp bestellt werden."; $form_errors[] = "Es muss mindestens ein Schraubentyp bestellt werden.";
$ok = false; $ok = false;
} }
@@ -182,7 +180,7 @@
//$mail_ok = mail($mail_to, $subject, $text, $headers); //$mail_ok = mail($mail_to, $subject, $text, $headers);
if ($mail_ok) { if ($mail_ok) {
$status .= "Mail erfolgreich verschickt.<br />"; $form_errors[] = "Mail erfolgreich verschickt.";
$name = ""; $name = "";
$strasse = ""; $strasse = "";
$plz = ""; $plz = "";
@@ -191,7 +189,7 @@
$telefon = ""; $telefon = "";
$notiz = ""; $notiz = "";
} }
else $status .= "Beim Verschicken der Mail ist ein Fehler aufgetreten.<br />"; else $form_errors[] = "Beim Verschicken der Mail ist ein Fehler aufgetreten.";
} }
} }
?> ?>
@@ -204,12 +202,6 @@
<script type="text/javascript" src="js/form_helper.js" defer></script> <script type="text/javascript" src="js/form_helper.js" defer></script>
</head> </head>
<pre><?= var_dump($_POST); ?></pre>
<pre><?= var_dump($form_errors); ?></pre>
<pre><?= var_dump($schrauben); ?></pre>
<body> <body>
<div class="container"> <div class="container">
<div> <div>
@@ -284,9 +276,7 @@
$has_error = array_key_exists($key, $screw_errors); $has_error = array_key_exists($key, $screw_errors);
echo '<tr> echo '<tr>
<td>'; <td>'. $value[0].'</td>
echo array_key_exists($key, $schrauben) ? 1 : 0;
echo '...'. $value[0].'</td>
<td>'.$value[1].'</td> <td>'.$value[1].'</td>
<td> <td>
<input <input
@@ -315,11 +305,11 @@
</table> </table>
'; ';
} }
if(count($form_errors) == 0 && count($screw_errors) == 0) echo '<br />';
?> ?>
<br />
<p class="error"> <p class="error">
<?php <?php
if(count($screw_errors) > 0) echo 'Fehler bei der Schraubenauswahl. Bitte prüfen.<br />';
foreach($form_errors as $error) { foreach($form_errors as $error) {
echo $error ."<br />"; echo $error ."<br />";
} }
@@ -327,26 +317,26 @@
</p> </p>
<div class="grid-container"> <div class="grid-container">
<label for="name">Name / Vorname: *</label> <label for="name">Name / Vorname: *</label>
<input type="text" name="name" id="name" value="<?=$name;?>" /> <input type="text" name="name" id="name" value="<?=$name;?>" required />
<div class="form_feedback">Name / Vorname erforderlich.</div> <div class="form_feedback">Name / Vorname erforderlich.</div>
<label for="strasse">Straße, Hausnummer: *</label> <label for="strasse">Straße, Hausnummer: *</label>
<input type="text" name="strasse" id="strasse" value="<?=$strasse;?>" /> <input type="text" name="strasse" id="strasse" value="<?=$strasse;?>" required />
<div class="form_feedback">Straße und Hausnummer erforderlich.</div> <div class="form_feedback">Straße und Hausnummer erforderlich.</div>
<label for="plz">PLZ: *</label> <label for="plz">PLZ: *</label>
<input type="text" name="plz" id="plz" value="<?=$plz;?>" /> <input type="text" name="plz" id="plz" value="<?=$plz;?>" required />
<div class="form_feedback">Postleitzahl erforderlich.</div> <div class="form_feedback">Postleitzahl erforderlich.</div>
<label for="stadt">Stadt: *</label> <label for="stadt">Stadt: *</label>
<input type="text" name="stadt" id="stadt" value="<?=$stadt?>" /> <input type="text" name="stadt" id="stadt" value="<?=$stadt?>" required />
<div class="form_feedback">Stadt erforderlich.</div> <div class="form_feedback">Stadt erforderlich.</div>
<label for="email">Email: *</label> <label for="email">Email: *</label>
<input type="email" name="email" id="email" value="<?=$mail_from;?>" /> <input type="email" name="email" id="email" value="<?=$mail_from;?>" required />
<div class="form_feedback">(Korrekte) E-Mail-Adresse erforderlich.</div> <div class="form_feedback">(Korrekte) E-Mail-Adresse erforderlich.</div>
<label for="telefon">Telefon: *</label> <label for="telefon">Telefon:</label>
<input type="tel" name="telefon" id="telefon" value="<?=$telefon;?>" /> <input type="tel" name="telefon" id="telefon" value="<?=$telefon;?>" />
<div class="form_feedback">Bitte Telefonnummer eingeben.</div> <div class="form_feedback">Bitte Telefonnummer eingeben.</div>