WebImpressionen
Formular 2

zum Test Formular

Damit der User die Pflichtfelder auch ausfüllt, nutzen wir im Formular required.
Im Formular:
  • <input required = "required" type = "text" id = "..." name = "..." class = "form-control">
Wir prüfen auch das Feld eMail,
Serverseitig mit FILTER_VALIDATE_EMAIL
FILTER_VALIDATE_EMAIL prüft auf @ sowie . und filtert nicht erlaubte Zeichen raus.
In der formular.php:
  • statt:
  • $email = trim ( $postmail ) ;

  • diese Zeile:
  • $email = filter_var ( trim ( $postmail ) , FILTER_VALIDATE_EMAIL ) ;
Ein offenes Formular sollte auch gegen Spam geschützt werden,
Das wird mit einem sogenannten Captcha erreicht.
die formular.php
<?php
    • // Zufallszahlen für Captcha erzeugen
  1. $capp1 = rand ( 46 , 85 ) ;
  2. $capp2 = rand ( 12 , 42 ) ;

    • // Variablen definieren und auf leere Werte setzen
  3. $name = $email = $inhalt = $betreff = $fehler = " " ; // $fehler für Captcha hinzufügen
  4. $name_err = $email_err = $inhalt_err = $betreff_err = " " ;

    • // Formulardaten werden verarbeitet, wenn das Formular gesendet wird
  5. if ( isset ( $_POST [ ' senden ' ] ) & & $_POST [ ' senden ' ] = = ' Senden ' )
  6. {

    • // POST für Captcha prüfen und in variablen wandeln
  7. $postcap1 = isset ( $_POST [ ' cap1 ' ] ) ? $_POST [ ' cap1 ' ] : " " ;
  8. $cap1 = IntVal ( $postcap1 ) ; // Nur Zahlen zulassen
  9. $postcap2 = isset ( $_POST [ ' cap2 ' ] ) ? $_POST [ ' cap2 ' ] : " " ;
  10. $cap2 = IntVal ( $postcap2 ) ; // Nur Zahlen zulassen
  11. $postresult = isset ( $_POST [ ' result ' ] ) ? $_POST [ ' result ' ] : " " ;
  12. $result = IntVal ( $postresult ) ; // Nur Zahlen zulassen

    • // POST für Name prüfen und in variablen wandeln
  13. $postname = isset ( $_POST [ ' name ' ] ) ? $_POST [ ' name ' ] : " " ;
  14. if ( empty ( $postname ) )
  15. {
  16. $name_err = " Feld Name ist leer ! " ;
  17. }
  18. else
  19. {
  20. $name = trim ( htmlspecialchars ( $postname ) ) ;
  21. if ( $name = = = false )
  22. {
  23. $name_err = " Dies ist kein Name ! " ;
  24. }
  25. }

    • // POST für eMail prüfen und in variablen wandeln
  26. $postmail = isset ( $_POST [ ' email ' ] ) ? $_POST [ ' email ' ] : " " ;
  27. if ( empty ( $postmail ) )
  28. {
  29. $email_err = " Feld eMail ist leer ! " ;
  30. }
  31. else
  32. {
  33. $email = filter_var ( trim ( $postmail ) , FILTER_VALIDATE_EMAIL ) ;
  34. if ( $email = = = false )
  35. {
  36. $email_err = " Dies ist keine eMail-Adresse ! " ;
  37. }
  38. }

    • // POST für Betreff prüfen und in variablen wandeln
  39. $postbetreff = isset ( $_POST [ ' betreff ' ] ) ? $_POST [ ' betreff ' ] : " " ;
  40. if ( empty ( $postbetreff ) )
  41. {
  42. $betreff_err = " Feld Betreff ist leer ! " ;
  43. }
  44. else
  45. {
  46. $betreff = trim ( htmlspecialchars ( $postbetreff ) ) ;
  47. if ( $betreff = = = false )
  48. {
  49. $betreff_err = " Dies ist kein Betreff ! " ;
  50. }
  51. }

    • // POST für Nachricht prüfen und in variablen wandeln
  52. $postinhalt = isset ( $_POST [ ' inhalt ' ] ) ? $_POST [ ' inhalt ' ] : " " ;
  53. if ( empty ( $postinhalt ) )
  54. {
  55. $inhalt_err = " Feld Nachricht ist leer ! " ;
  56. }
  57. else
  58. {
  59. $inhalt = trim ( htmlspecialchars ( $postinhalt ) ) ;
  60. if ( $inhalt = = = false )
  61. {
  62. $inhalt_err = " Dies ist keine Nachricht ! " ;
  63. }
  64. }

    • // Ergebnis vom Captcha prüfen
  65. if ( ( $cap1 - $cap2 ) ! = $result ) $fehler = true;

    • // Keine Fehler, Formular Inhalt ausführen
  66. if ( empty ( $name_err ) & & empty ( $email_err ) & & empty ( $betreff_err ) & & empty ( $inhalt_err ) & & empty ( $fehler ) )
  67. {

      • // Hier kommt je nach Formular sowas wie:
    • // $empfaenger = " meine@mailadresse.de ";
    • // $from = "From: " . $email . "\ n " ;
    • // $betref = $betreff . " \ 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

  68. }

  69. }
?>
 Hier wird das formular eingefügt.
das formular.html
  • <! 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 ">
  • <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">

  2. <div class = "form-face">
  3. <label for = "name"> Name: <span> * </span> </label>
  4. <span class = "fehler"> <?php echo $name_err ; ?> </span>
  5. <input required = "required" type = "text" id = "name" name = "name" class = "form-control">
  6. </div>

  7. <div class = "form-face">
  8. <label for = "email"> eMail: <span> * </span> </label>
  9. <span class = "fehler"> <?php echo $email_err ; ?> </span>
  10. <input required = "required" type = "text" id = "email" name = "email" class = "form-control">
  11. </div>

  12. <div class = "form-face">
  13. <label for = "betreff"> Betreff: <span> * </span> </label>
  14. <span class = "fehler"> <?php echo $betreff_err ; ?> </span>
  15. <input required = "required" type = "text" id = "betreff" betreff = "betreff" class = "form-control">
  16. </div>

  17. <div class = "form-face">
  18. <label for = "inhalt"> Nachricht: <span> * </span> </label>
  19. <span class = "fehler"> <?php echo $inhalt_err ; ?> </span>
  20. <textarea required = "required" id = "inhalt" name = "inhalt" class = "form-control"></textarea>
  21. </div>

  22. <!-- Captcha zum senden verstecken -->
  23. <input value = "<?php echo $capp1 ;?>" name = "cap1" type = "hidden">
  24. <input value = "<?php echo $capp2 ;?>" name = "cap2" type = "hidden">

  25. <!-- Spamschutz Eingabefeld erstellen -->
  26. <div class = "form-face">
  27. <label for = "spam"> Spamschutz: <span> * </span> <small>Wieviel ist</small> <?php echo $capp1 ;?> - <?php echo $capp2 ;?></label>
  28. <?php if ( $fehler ) echo ' <span class = "fehler">Die Lösung ist falsch!</span> ' ;?>
  29. <input required = "required" id = "result" name = "result" type = "text" class = "form-control">
  30. </div>

  31. <div class = "form-face">
  32. <label> <span> * </span> Felder sind Pflicht! </label>
  33. <input type = "submit" class = "butt button-blue" name = "senden" value = "Senden">
  34. <input class = "butt button-red" type = "reset" value = "Reset">
  35. </div>

  36. </form>
  • </fieldset>

  • </body>
  • </html>
das formular
zum testen bei eMail mal wer@wo.comando eingeben.