Auch selbstgebaute Kontaktformulare oder vor Ewigkeiten eingebaute PHP-Kontaktformulare müssen für die DSGVO erweitert werden. Ich zeige dies hier anhand meines selbst gebauten Kontaktformulars. Wenn man sich selber gar nicht mit dem eingesetzten Skript auskennt, kann es aber auch eine schnelle Lösung sein, das gesamte Skript mittels eines Kontaktformular-Generators einfach neu zu erstellen. So ist vermutlich auch vor Ewigkeiten mal das bestehende Skript entstanden 😉
Wenn man sich für den Generator entscheidet, muss man nur eine entsprechende Checkbox hinzufügen. Ansonsten muss man das bestehende Formular um ein solches Element erweitern:
1 2 3 4 |
<p id="datenschutz-outer"> <input type="checkbox" id="datenschutz" name="datenschutz" value="true"/> Mit der Nutzung dieses Formulars erklären Sie sich mit der Speicherung und Verarbeitung Ihrer Daten durch diese Website einverstanden. Weitere Informationen erhalten Sie in der <a href=https://www.domain.de/datenschutz" target="_blank">Datenschutzerklärung</a> * </p> |
Für den Text kann man auch ein Label-Element verwenden, wenn nötig. In meinem Fall habe ich das nicht gebraucht. Je nach Layout und CSS der Seite, sieht das Ergebnis dann z. B. so aus:
An der entsprechenden Stelle im Code, an der die Pflichtfelder überprüft werden und dann die Eingaben verarbeitet werden, prüft man dann auch ob der richtige Wert (in meinem Formular „true“) für die Datenschutzbelehrung gesetzt wurde:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
## Verhalten bei Betätigung des Versenden-Buttons ## if (isset($_POST['submit'])) { if (!empty($_POST['nachname']) && !empty($_POST['vorname']) && !empty($_POST['mail']) && !empty($_POST['nachricht']) && $_POST['datenschutz']==true) { ## Mail-Header ## $mailheader = "From: " . $_POST['vorname'] . " " . $_POST['nachname'] . "" . "\n"; $mailheader .= "Content-type: text/plain; charset=utf-8" . "\n"; ## Mail senden ## $recipient = "info@domain.de"; $subject = "Anfrage - " . $_POST['anrede'] . " " . $_POST['vorname'] . " " . $_POST['nachname']; $mailtext = "Anrede: " . $_POST['anrede'] . "\n" . "Nachname: " . $_POST['nachname'] . "\n" . "Vorname: " . $_POST['vorname'] . "\n"; $mailtext .= "Mail-Adresse: " . $_POST['mail'] . "\n" . "Firma: " . $_POST['firma'] . "\n" . "Strasse: " . $_POST['strasse'] . "\n"; $mailtext .= "Hausnummer: " . $_POST['haus'] . "\n" . "PLZ: " . $_POST['plz'] . "\n" . "Ort: " . $_POST['ort'] . "\n"; $mailtext .= "Land: " . $_POST['land'] . "\n" . "Datenschutzbelehrung: wurde akzeptiert" . "\n" . "\n\n" . "Nachricht: " . "\n" . $_POST['nachricht']; mail($recipient, $subject, $mailtext, $mailheader); unset($mailtext); $filepath = $script_path . 'kontakt_danke.inc'; } |
Auch wenn es vermutlich keine Bewandtnis hat, habe ich in die E-Mail, die man dann erhält, noch den Text „Datenschutzbelehrung: wurde akzeptiert“ eingefügt.
In den vorhandenen Else-Zweig, für den Fall dass nicht alle Pflichtfelder ausgefüllt wurden, habe ich eine rote Umrandung um das p-Element „datenschutz-outer“ mit Hilfe von dann zusätzlich ausgegebenem CSS-Code per echo-Ausgabe hinzugefügt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
else { echo "div#warning {display: block;}"; if (empty($_POST['nachname'])) { echo "#nachname {border: 2px solid #F00000;}"; } if (empty($_POST['vorname'])) { echo "#vorname {border: 2px solid #F00000;}"; } if (empty($_POST['mail'])) { echo "#mail {border: 2px solid #F00000;}"; } if (empty($_POST['nachricht'])) { echo "#nachricht {border: 2px solid #F00000;}"; } if (empty($_POST['datenschutz-outer'])) { echo "#datenschutz-outer {border: 2px solid #F00000;}"; } } } |