WebImpressionen
Formular 5

zum Test Formular

Das Filtern geht auch im html-Formular, wieder mit pattern ( ) .
Wie geht pattern ( ) z.B. für Name? spezielles Formular Beispiel:
  • pattern = " [ A-Z ] [ A-z \ D ] { 2 , 24 } [ ^ 0 - 9 < > * + ~ _ $ % & ( ) ] "
  • [ A-Z ] = Das erste Zeichen muss ein Großbuchstabe sein.
  • [ A-z \ D ] = Buchstaben gross/klein, Umlaute sowie Leerzeichen und Minus sind gestattet.
  • [ ^ 0 - 9 < > * + ~ _ $ % & ( ) ] = Zahlen und diese Zeichen sind nicht gestattet!
  • { 2 , 24 } mindestens 2 Zeichen und maximal 24 Zeichen, der Großbuchstabe wird nicht mitgezählt.
Wie geht pattern ( ) für eMail? Beispiel:
  • pattern = " ^ [ a - z ] { 2 , } [ \ w . + - ] { 0 , } @ [ a - z 0 - 9 - ] { 2 , 30 } ( [ . ] [ a - z ] { 2 , 3 } ) $ "
  • [ a - z ] { 2 , } = Das ersten beiden Zeichen müssen klein Buchstaben sein.
  • [ \ w . + - ] = Buchstaben klein, Zahlen sowie Leerzeichen, unterstrich, punkt, plus und minuszeichen ist vor dem @ gestattet.
  • [ a - z 0 - 9 - ] { 2 , 30 } ( [ . ] [ a - z ] { 2 , 3 } nach dem @ müssen mindestens 2 bis 30 Zeichen vor dem Punkt und maximal 3 klein Buchstaben nach dem Punkt sein.
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 = " " ;
  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 ) ;
  9. $postcap2 = isset ( $_POST [ ' cap2 ' ] ) ? $_POST [ ' cap2 ' ] : " " ;
  10. $cap2 = IntVal ( $postcap2 ) ;
  11. $postresult = isset ( $_POST [ ' result ' ] ) ? $_POST [ ' result ' ] : " " ;
  12. $result = IntVal ( $postresult ) ;

    • // 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. elseif ( ( strlen ( trim ( $postname ) ) < 3 ) | | ( strlen ( trim ( $postname ) ) ) > 25 )
  19. {
  20. $name_err = " Feld Name muss minimal 3 bis maximal 25 Zeichen enthalten ! " ;
  21. }
  22. else
  23. {
  24. $name = trim ( htmlspecialchars ( $postname ) ) ;
  25. if ( ! preg_match ( " / ^ [ A - Z ] [ A - z \ D ] * $ / " , $name ) )
  26. {
  27. $name_err = " Das erste Zeichen muss ein Großbuchstabe sein ! " ;
  28. }
  29. if ( $name = = = false )
  30. {
  31. $name_err = " Dies ist kein Name ! " ;
  32. }
  33. }

    • // POST für eMail prüfen und in variablen wandeln
  34. $postmail = isset ( $_POST [ ' email ' ] ) ? $_POST [ ' email ' ] : " " ;
  35. if ( empty ( $postmail ) )
  36. {
  37. $email_err = " Feld eMail ist leer ! " ;
  38. }
  39. elseif ( ( strlen ( trim ( $postmail ) ) < 8 ) | | ( strlen ( trim ( $postmail ) ) ) > 75 )
  40. {
  41. $email_err = " Feld eMail muss minimal 8 bis maximal 75 Zeichen enthalten ! " ;
  42. }
  43. else
  44. {
  45. $email = filter_var ( trim ( $postmail ) , FILTER_VALIDATE_EMAIL ) ;
  46. if ( ! preg_match ( " / ^ ( [ a - z 0 - 9 \ + _ \ - ] + ) * @ ( [ a - z 0 - 9 \ - ] { 2 , 30 } + \ . ) + [ a - z ] { 2 , 3 } $ / i x " , $email ) )
  47. {
  48. $email_err = " Dies ist keine valide eMail-Adresse ! " ;
  49. }
  50. if ( $email = = = false )
  51. {
  52. $email_err = " Dies ist keine eMail-Adresse ! " ;
  53. }
  54. }

    • // POST für Betreff prüfen und in variablen wandeln
  55. $postbetreff = isset ( $_POST [ ' betreff ' ] ) ? $_POST [ ' betreff ' ] : " " ;
  56. if ( empty ( $postbetreff ) )
  57. {
  58. $betreff_err = " Feld Betreff ist leer ! " ;
  59. }
  60. elseif ( ( strlen ( trim ( $postbetreff ) ) < 3 ) | | ( strlen ( trim ( $postbetreff ) ) ) > 25 )
  61. {
  62. $betreff_err = " Feld Betreff muss minimal 3 bis maximal 25 Zeichen enthalten ! " ;
  63. }
  64. else
  65. {
  66. $betreff = trim ( htmlspecialchars ( $postbetreff ) ) ;
  67. if ( ! preg_match ( " / ^ [ A - Z ] [ A - z \ D ] * $ / " , $betreff ) )
  68. {
  69. $name_err = " Das erste Zeichen muss ein Großbuchstabe sein ! " ;
  70. }
  71. if ( $betreff = = = false )
  72. {
  73. $betreff_err = " Dies ist kein Betreff ! " ;
  74. }
  75. }

    • // POST für Nachricht prüfen und in variablen wandeln
  76. $postinhalt = isset ( $_POST [ ' inhalt ' ] ) ? $_POST [ ' inhalt ' ] : " " ;
  77. if ( empty ( $postinhalt ) )
  78. {
  79. $inhalt_err = " Feld Nachricht ist leer ! " ;
  80. }
  81. elseif ( ( strlen ( trim ( $postinhalt ) ) < 5 ) | | ( strlen ( trim ( $postinhalt ) ) ) > 200 )
  82. {
  83. $inhalt_err = " Feld Nachricht muss minimal 5 bis maximal 200 Zeichen enthalten ! " ;
  84. }
  85. else
  86. {
  87. $inhalt = trim ( htmlspecialchars ( $postinhalt ) ) ;
  88. if ( $inhalt = = = false )
  89. {
  90. $inhalt_err = " Dies ist keine Nachricht ! " ;
  91. }
  92. }

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

    • // Keine Fehler, Inhalt zwischen Zeile 6 und 78 ausführen
  94. if ( empty ( $name_err ) & & empty ( $email_err ) & & empty ( $betreff_err ) & & empty ( $inhalt_err ) & & empty ( $fehler ) )
  95. {

      • // 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

  96. }

  97. }
?>
 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 pattern = " [ A - Z ] [ A - z \ D ] { 2 , 24 } [ ^ 0 - 9 < > * + ~ _ $ % & ( ) ] " required = "required" placeholder = " 3 - 25 Zeichen" title = " Das erste Zeichen muss ein Großbuchstabe sein! " type = "text" id = "name" name = "name" class = "form-control"maxlength = "25" value = " <?php echo $name;?> ">
  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 pattern = " ^ [ a - z ] { 2 , } [ \ w . + - ] { 0 , } @ [ a - z 0 - 9 - ] { 2 , 30 } ( [.] [ a - z ] { 2 , 3 } ) $ " required = "required" placeholder = " 8 - 75 Zeichen " title = " Bitte eine valide eMail Adresse eingeben " type = "email" id = "email" name = "email" class = "form-control" maxlength = "75" value = " <?php echo $email;?> ">
  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 pattern = " [ A - Z ] [ A - z \ D ] { 2 , 24 } [ ^ 0 - 9 < > * + ~ _ $ % & ( ) ] " required = "required" placeholder = " 3 - 25 Zeichen " title = " Das erste Zeichen muss ein Großbuchstabe sein! " type = "text" id = "betreff" name = "betreff" class = "form-control" maxlength = "25" value = " <?php echo $betreff;?> ">
  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" placeholder = " 5 - 200 Zeichen " title = " Bitte eine Nachricht mit mindestens 5 und maximal 200 Zeichen eingeben. " id = "inhalt" name = "inhalt" class = "form-control" minlength = "5" maxlength = "200"> <?php echo $inhalt;?> </textarea>
  21. </div>

  22. <input value = "<?php echo $capp1 ; ?>" name = "cap1" type = "hidden">
  23. <input value = "<?php echo $capp2 ; ?>" name = "cap2" type = "hidden">

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

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

  34. </form>
  • </fieldset>

  • </body>
  • </html>
das formular
Ein einfaches fertiges Kontakt-Formular.