WebImpressionen
Formular 1

zum Test 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.
die formular.php
<?php

  • // Variablen definieren und auf leere Werte setzen
  • $name = $email = $inhalt = $betreff = " " ;
  • $name_err = $email_err = $inhalt_err = $betreff_err = " " ;

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

    • // POST für Name prüfen und in variablen wandeln
  3. $postname = isset ( $_POST [ ' name ' ] ) ? $_POST [ ' name ' ] : " " ;
  4. if ( empty ( $postname ) )
  5. {
  6. $name_err = " Feld Name ist leer ! " ;
  7. }
  8. else
  9. {

    • // Nicht erlaubte Zeichen werden umgewandelt
  10. $name = trim ( htmlspecialchars ( $postname ) ) ;
  11. if ( $name = = = false )
  12. {
  13. $name_err = " Dies ist kein Name ! " ;
  14. }
  15. }

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

    • // POST für Betreff prüfen und in variablen wandeln
  29. $postbetreff = isset ( $_POST [ ' betreff ' ] ) ? $_POST [ ' betreff ' ] : " " ;
  30. if ( empty ( $postbetreff ) )
  31. {
  32. $betreff_err = " Feld Betreff ist leer ! " ;
  33. }
  34. else
  35. {

    • // Nicht erlaubte Zeichen werden umgewandelt
  36. $betreff = trim ( htmlspecialchars ( $postbetreff ) ) ;
  37. if ( $betreff = = = false )
  38. {
  39. $betreff_err = " Dies ist kein Betreff ! " ;
  40. }
  41. }

    • // POST für Nachricht prüfen und in variablen wandeln
  42. $postinhalt = isset ( $_POST [ ' inhalt ' ] ) ? $_POST [ ' inhalt ' ] : " " ;
  43. if ( empty ( $postinhalt ) )
  44. {
  45. $inhalt_err = " Feld Nachricht ist leer ! " ;
  46. }
  47. else
  48. {

    • // Nicht erlaubte Zeichen werden umgewandelt
  49. $inhalt = trim ( htmlspecialchars ( $postinhalt ) ) ;
  50. if ( $inhalt = = = false )
  51. {
  52. $inhalt_err = " Dies ist keine Nachricht ! " ;
  53. }
  54. }

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

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

  57. }

  58. }

?>
 Hier wird das formular eingefügt.
die gesendet.php
<?php
  • // Antworttext verfassen
  • echo ' <p> Vielen Dank - Die Nachricht wurde gesendet! </p> ' ;

  • // Nur zum Testen:
  • echo ' <p> <a href = "formular.php"> zum Formular </a> </p> ' ;
?>
Die gesendet.php muß im gleichen Pfad sein.
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 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 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 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 id = "inhalt" name = "inhalt" class = "form-control"></textarea>
  21. </div>

  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">
  25. <input class = "butt button-red" type = "reset" value = "Reset">
  26. </div>

  27. </form>
  • </fieldset>

  • </body>
  • </html>
das formular
zum testen einfach die Felder freilassen.

Fatal error: Uncaught TypeError: date_sub(): Argument #1 ($object) must be of type DateTime, bool given in /mnt/web407/b2/50/5943050/htdocs/statistik/include/einstellungen.php:13 Stack trace: #0 /mnt/web407/b2/50/5943050/htdocs/statistik/include/einstellungen.php(13): date_sub() #1 /mnt/web407/b2/50/5943050/htdocs/statistik/counter.php(4): require('...') #2 /mnt/web407/b2/50/5943050/htdocs/sites/db1.php(295): require('...') #3 /mnt/web407/b2/50/5943050/htdocs/index.php(51): require('...') #4 {main} thrown in /mnt/web407/b2/50/5943050/htdocs/statistik/include/einstellungen.php on line 13