WebImpressionen

zum Muster Formular

Alle Eingaben in einem Formular sollten immer serverseitig geprüft werden!
Egal ob das Formular mit HTML und/oder JavaScript überprüft wird!

Wir schreiben jetzt alles in die formular.php und erstellen uns eine gesendet.php,
des weiteren ändern wir den Sende Button und fügen noch einen Button zum Löschen der Eingaben hinzu.
  • <input type="submit" class="butt button-blue" name="senden" value="Senden">
    <input class="butt button-red" type="reset" value="Reset">

So zum Beispiel kann ein Formular Serverseitig auf Inhalt geprüft werden.
formular.php
<?php
    • // Variablen definieren und auf leere Werte setzen
  1. $name = $email = $inhalt = $betreff = "";
  2. $name_err = $email_err = $inhalt_err = $betreff_err = "";

    • // Formulardaten werden verarbeitet, wenn das Formular gesendet wird
  3. if (isset($_POST['senden']) && $_POST['senden'] == 'Senden')
  4. {
    • // POST für Name prüfen und in variablen wandeln
  5. $postname = isset($_POST['name']) ? $_POST['name'] : "";
  6. if(empty(trim($postname)))
  7. {
  8. $name_err = "Feld Name ist leer!";
  9. }
  10. else
  11. {
  12. $name = htmlspecialchars($postname);
  13. if ($name === false)
  14. {
  15. $name_err = "Dies ist kein Name!";
  16. }
  17. } // Ende Zeile 10

    • // POST für eMail prüfen und in variablen wandeln
  18. $postmail = isset($_POST['email']) ? $_POST['email'] : "";
  19. if(empty(trim($postmail)))
  20. {
  21. $email_err = "Feld eMail ist leer!";
  22. }
  23. else
  24. {
  25. $email = trim($postmail);
  26. if ($email === false)
  27. {
  28. $email_err = "Dies ist keine eMail-Adresse!";
  29. }
  30. } // Ende Zeile 23

    • // POST für Betreff prüfen und in variablen wandeln
  31. $postbetreff = isset($_POST['betreff']) ? $_POST['betreff'] : "";
  32. if(empty(trim($postbetreff)))
  33. {
  34. $betreff_err = "Feld Betreff ist leer!";
  35. }
  36. else
  37. {
  38. $betreff = htmlspecialchars($postbetreff);
  39. if ($betreff === false)
  40. {
  41. $betreff_err = "Dies ist kein Betreff!";
  42. }
  43. } // Ende Zeile 35

    • // POST für Nachricht prüfen und in variablen wandeln
  44. $postinhalt = isset($_POST['inhalt']) ? $_POST['inhalt'] : "";
  45. if(empty(trim($postinhalt)))
  46. {
  47. $inhalt_err = "Feld Nachricht ist leer!";
  48. }
  49. else
  50. {
  51. $inhalt = htmlspecialchars($postinhalt);
  52. if ($inhalt === false)
  53. {
  54. $inhalt_err = "Dies ist keine Nachricht!";
  55. }
  56. } // Ende Zeile 48

    • // Keine Fehler, Inhalt zwischen Zeile 4 und 54 ausführen
  57. if(empty($name_err) && empty($email_err) && empty($inhalt_err) && empty($betreff_err))
  58. {

      • // Hier kommt je nach Formular sowas wie:
    • // $empfaenger = "info@meinemailadresse.de";
    • // $from = "From: ".htmlspecialchars($email)."\n";
    • // $betref = "server-domainname\n";
    • // $text = "Name: ".$name."\n";
    • // $text .= "Nachricht: ".$inhalt."\n";
    • // mail($empfaenger, $betref, $text, $from);
    • // header("Location: gesendet.php");exit;
      • // für eine reine text/email hin.

    • // Nur zum Testen Ergebnis:
    • echo $name.'<br/>';
    • echo $email.'<br/>';
    • echo $betreff.'<br/>';
    • echo $inhalt.'<br/>';
    • // Test Ergebnis ende

  59. }

  60. } // Ende Zeile 4

?>
Hier wird das formular eingefügt.

gesendet.php
<?php
  • // Antworttext verfassen
  • echo'Vielen Dank - Die Nachricht wurde gesendet!';

  • // Nur zum Testen:
  • echo'<br><a href="formular.php">zum Formular</a>';
?>

das formular
  • <!DOCTYPE html>
  • <html lang="de"><head>
  • <meta charset="UTF-8">
  • <meta name="viewport" content="width=device-width,initial-scale=1.0">
  • <title>Formular</title>
  • <meta name="dcterms.rights" content="locomputing">
  • <meta name="description" content="Beschreibung der Website">
  • <meta name="keywords" content="Keywords">
  • <!-- Dieses Stylesheet kann unter Downloads auch runtergeladen werden! -->
  • <link rel="stylesheet" href="https://locomputing.de/mustercss/formular_style.css">

  • </head>
  • <body>

  • <h4> Formular </h4>
  • <p>Bitte geben Sie Ihre Daten ein.</p>

  • <fieldset>
  1. <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

    • <!-- Beschriftung, Eingabefeld und Fehlermeldung für Name -->
  2. <div class="form-face">
  3. <label for="name">Name:<span>*</span></label>
  4. <span class="fehler"> <?php echo $name_err;?></span>
  5. <input type="text" id="name" name="name" class="form-control">
  6. </div>

    • <!-- Beschriftung, Eingabefeld und Fehlermeldung für eMail -->
  7. <div class="form-face">
  8. <label for="email">eMail:<span>*</span></label>
  9. <span class="fehler"> <?php echo $email_err;?></span>
  10. <input type="text" id="email" name="email" class="form-control">
  11. </div>

    • <!-- Beschriftung, Eingabefeld und Fehlermeldung für Betreff -->
  12. <div class="form-face">
  13. <label for="betreff">Betreff:<span>*</span></label>
  14. <span class="fehler"> <?php echo $betreff_err;?></span>
  15. <input type="text" id="betreff" name="betreff" class="form-control">
  16. </div>

    • <!-- Beschriftung, Eingabefeld und Fehlermeldung für Nachricht -->
  17. <div class="form-face">
  18. <label for="inhalt">Nachricht:<span>*</span></label>
  19. <span class="fehler"> <?php echo $inhalt_err;?></span>
  20. <textarea id="inhalt" name="inhalt" class="form-control"></textarea>
  21. </div>

    • <!-- Sende-Button -->
  22. <div class="form-face">
  23. <label><span>*</span> Felder sind Pflicht!</label>
  24. <input type="submit" class="butt button-blue" name="senden" value="Senden">
    <input class="butt button-red" type="reset" value="Reset">
  25. </div>

  26. </form>
  • </fieldset>

  • </body>
  • </html>

zum testen einfach die Felder freilassen.