Logo 01-Scripts.de

Artikel, Tutorials & Codeschnipsel

Wissen Kontaktformular erstellen (Grundlagen)

Kontaktformular erstellen (Grundlagen)

In diesem kurzen Tutorial wird ein kleines HTML-Formular erstellt um das Zusammenspiel zwischen HTML und PHP kennenzulernen. Wir beginnen dazu damit ein einfaches HTML-Formular mit mehreren Eingabefeldern anzulegen (das Formular kann beliebig erweitert werden):

<form action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post"> 
    <input type="text" name="email" size="20" /> 
    <input type="text" name="nachricht" size="50" /> 
    <input type="hidden" name="send" value="ja" /> 
    <input type="reset" value="Reset" /><input type="submit" value="Versenden" /> 
</form>

Nun fehlt noch der PHP-Code um die übergebenen Formulardaten zu verarbeiten und anschließend mit der mail()-Funktion zu versenden. Allgemeine Informationen zum Zugriff auf Daten, die per Formular übertragen wurden, sind auch diesem kurzen Tutorial zu entnehmen.

<?PHP
if(isset($_POST['send']) && $_POST['send'] == "ja"){
    $absender = preg_replace( "/[^a-z0-9 !?:;,./_-=+@#$&*()]/im", "", 
    $_POST['email'] );

    $absender = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", 
    $absender );

    $txt = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", 
    $_POST['nachricht'] );

    mail("email@adresse.de","Betreff","Folgende Nachricht wurde per Kontaktformular an Sie versendet:nn".$txt."","From:".$absender."<".$absender.">");

    echo "<p align="center"><b>Ihre Nachricht wurde erfolgreich an den Webmaster verschickt!</b></p>";
    }
?>

Beachten Sie, dass die Variablen vor dem Versand mit der preg_replace()-Funktion behandelt werden um zu verhindern, dass ein falscher Absender der Funktion untergeschoben werden kann.
Zur Behandlung von externen Variablen ist auch folgende Seite sehr hilfreich.

Wenns Sie ihr Formular weiter oben mit weiteren Feldern erweitert haben, können Sie im Hauptteil der E-Mail die entsprechenden Werte über die entsprechenden Variablen einfügen.
Beim Zusammensetzen der Mailfunktion ist darauf zu achten, dass die E-Mail so formatiert wird, wie sie im Quellcode angezeigt wird. Es werden also alle Zeilenumbrüche und Leerzeichen aus dem Quellcode in der E-Mail übernommen.
Die Variablen setzen sich wie folgt zusammen (weitere Informationen):

<?PHP
echo $_TRANSFERMETHOD['feldname']; 
// Beispielsweise bei method="POST":
echo $_POST['feldname']; 
// oder bei method="GET ":
echo $_GET['feldname']; 
?>

Weiterführende Informationen