Dies ist das klassische Kontaktformular, die selbe Technik wird aber auch für andere Formulare wie Bestellformulare, Feedback Formulare, Supportanfragen und alle Formulare mit Benachrichtigung an einen Admin gebraucht. Um die Mailfunktion testen zu können, solltest du Zugang zu einem Server haben, der Mails verschicken kann. Auf dem XAMPP ist die Mailfunktion meist deaktiviert, sollte das Versenden trotzdem möglich sein, würde das E-Mail würde wahrscheinlich im Spamfilter des Empfängers hängenbleiben.
Aufgabe
- Erstelle ein Formular mit den Feldern
- Ihr Name
- Ihre Emailadresse
- Ihre Mitteilung
- Kopie an mich (checkbox)
- Das Formular und die Verarbeitung sollten in der gleichen Datei geschehen. Das Formular soll an Dich geschickt werden, wenn es korrekt ausgefüllt wurde. Verwende dazu die Funktion mail(). Hierfür bereitest du vier Variablen vor, die du der Funktion übergeben musst (alle enthalten Strings):
- $empfaenger: deine E-Mail Adresse, an die die Nachricht gesendet werden soll
- $betreff: Einen Betreff für die Nachricht, z.B. "Kontaktaufnahme via Webseite" oder ähnlich - so erkennst du alle Mails, die von diesem Script stammen, schnell in deiner inbox
- $nachricht: der (am schluss dann validierte, gefilterte) Wert aus dem Formularfeld "Mitteilung"
- $header: ein Mailheader, der mindestens From und Reply-To (der Wert aus dem Feld "E-Mail") sowie das Format (HTML oder Plain Text) sowie den Zeichensatz enthält.
- Erstelle eine Status-Variable, welche anfangs auf false steht, und durch die korrekte Validierung auf true gesetzt wird, um später prüfen zu können, ob das Formular abgeschickt werden kann oder nicht.
- Bei Auswahl von "Kopie an mich" soll an den Absender auch eine Email geschickt werden. Hier kann ein kleiner Einleitungstext hinzukommen beim Emailtext (sowas wie "Du hast diese Mail am xx.xx.xxxx an uns geschickt")
- Leere Felder: stelle sicher, dass Name, Email und Mitteilung nicht leer sind und keine HTML-Tags enthalten. Verwende dazu IF/ELSE und die Funktion filter_var().
- Email-Validierung: Stelle sicher, dass die Emailadresse, die angegeben wurde, korrekt ist, und nur EINE einzige E-Mailadresse eingegeben wird. Verwende dazu die Funktion filter_var(). Wenn die Adresse nicht durch den Filter kommt, soll eine Fehlermeldung ausgegeben werden.