Wir machen Urlaub:

Wir befinden uns vom 15.12.2025 bis einschließlich 11.01.2026 im Urlaub.

Ab dem 12.01.2026 sind wir wie gewohnt wieder erreichbar!

Simples Kontaktformular mit PHP

In diesem Blogbeitrag werden wir ein einfaches HTML-Formular mit PHP so aufrüsten, dass wir von verschiedenen Nutzern E-Mails erhalten können. Wir verwenden den unten angegebenen Beispiel HTML-Code, um unser Formular mit dem entsprechenden PHP-Code zu ergänzen.

<form class="form" action="contact.php" method="post">
	<div class="form-group">
    	<label>Name</label>
    	<input class="form-control input-lg" type="text" name="name-contact">
    </div>
    <div class="form-group">
    	<label>Email</label>
    	<input class="form-control input-lg" type="email" name="email-contact">
    </div>
    <div class="form-group">
    	<label>Subject</label>
        <input class="form-control input-lg" type="text" name="subject-contact">
    </div>
    <div class="form-group">
    	<label>Message</label>
        <textarea class="form-control input-lg mb-2" name="message-contact"></textarea>
    </div>
    <button class="btn btn-primary btn-lg mt-3" type="submit" name="submit-contact">Send</button>
</form>

$_POST['Form-Data']

Kontaktformular UI

Als erstes müssen wir mit folgender Funktion checken ob beim Klicken des Submit Buttons über die POST-Methode wirklich Daten übertragen werden. Da die PHP eigene Superglobal-Variable $_POST sämtliche Daten als Array abspeichert, haben wir jetzt die Möglichkeit unseren User Input als eigene Variablen anzulegen. htmlspecialchars hilft uns hier um den Input automatisch in Strings umzuwandeln, um so die Injektion schadhaften Codes zu Vermeiden.

<?php
if(filter_has_var(INPUT_POST, 'submit-contact')){
      $name = htmlspecialchars($_POST['name-contact']);
      $email = htmlspecialchars($_POST['email-contact']);
      $subject = htmlspecialchars($_POST['subject-contact']);
      $message = htmlspecialchars($_POST['message-contact']);
}

mail($mailTo, $subject, $txt);

Nun können wir mit der PHP Funktion "mail" unserem Server den Befehl geben, uns eine E-Mail mit den eingegeben User Daten zu zurückzugeben. Vorher aber müssen wir noch das Template der E-Mail vorbereiten. Hierfür definieren wir wieder einige Variablen und passen den String dynamisch an den vom User eingegebenen Input an.

<?php

$mailTo = 'your@email.com';
$txt = "You have received an e-mail from " . $name . "\n\n" . $message;
$headers = "From: " . $email;

mail($mailTo, $subject, $txt, $headers)

Fazit

Wenn wir jetzt das Formular abschicken und anschließend in unser E-Mail Postfach schauen, sollte eine neue Nachricht eingetroffen sein.
Abschließend ist aber noch zu Erwähnen, dass dieser Beitrag nur einen kurzen Einblick gewähren soll und der oben angegebene Beispiel Code keinesfalls ein Ersatz für eine sichere Datenübertragung darstellt. Sämtliche Sicherheitsüberprüfungen und Validierungen würden hier den Rahmen sprengen. Eventuell gibt's darüber noch einen eigenen Beitrag ;)

Weitere interessante Beiträge...

31.05.2019

Mehr Kunden durch E-Mail Marketing

Marketing

E-Mail Marketing als Marketingkanal wird seit Jahrzehnten erfolgreich eingesetzt, obwohl viele die Wirksamkeit in den letzten Jahren anzweifeln. Wir geben Ihnen das nötige Know-How, wie Sie mit mit Ihren Newslettern durchstarten.

14.04.2021

Die Zukunft des E-Commerce

E-Commerce

Kaum eine Branche hat in den letzten Jahren ein solches Wachstum hinlegen können wie der Online-Handel. Doch welche Trends werden die nächsten Jahre dominieren und ist damit der stationäre Handel überhaupt noch zukunftsfähig?

PHP Elephant Logo

15.12.2018

Dynamische Inhalte mit Templates

PHP

Nicht nur bei Content Mangagement Systemen erfreut sich die Arbeit mit Templates immer größerer Beliebtheit. Auch bei statischen Websites und Frameworks sind sie beinahe nicht mehr wegzudenken...