Kontakt Formular - Website X5 Hilfe - Die Helpsite

Logo Schriftzug
Logo WSX5
Newsletter anmelden
Scan QR or Download Android App
Direkt zum Seiteninhalt

Kontakt Formular

Scripte > Form-Mailer

Ein professionelles PHP-Kontaktformular

Dieses Script versendet eine E-Mail-Nachricht mit Anlagen mit dem Parameter sendmail. Auch eine Spamschutz ist integriert. Hier muss der Server die Scripssprache PHP auswerten können und die aufrufende Datei muss somit die Dateiendung .php aufweisen.
In der Datei "settings.php" müssen die Grundeinstellungen vorgenommen werden, die Form und der Style können in der Datei "mail_style.css" sowie Textänderungen in der Datei "mailform.php" vorgenommen werden. Für den Datei-Import  der Anlagen muss auf dem Server im Verzeichnis mailform ein Unterverzeichnis "files" angelegt und diesem die Schreibrechte CHMOD 777 zugewiesen werden.
Es gibt zwei Möglichkeiten zur Einbindung in die Homepage. Die ZIP-Datei entpacken und das Verzeichnis "mailform" auf den Server kopieren.


 
Dateiformat: png, jpg, jpeg, gif - Dateigröße max.: 1,0 KB
46 + 9 = (Rechenaufgabe lösen)

  Bitte alle Pflichtfelder ausfüllen!            

Michael Mustermann
Musterstrasse 1, 12345 Musterhausen, Telefon: 01234-987654

Code für den HEAD-Bereich:

[Vor dem /HEAD]

<link rel="stylesheet" type="text/css" href="mailform/mail_style.css" />

Variante 1

[Objekt HTML]

Code für das HTML-Objekt:


<?php
include_once 'mailform/settings.php';

// Fortgeschrittene Anwender können ab hier Änderungen vornehmen.
error_reporting(0);
$eingabefehler = ""; // Bitte leer lassen!
$anrede = isset($_POST["anrede"]) ? $_POST["anrede"] : "";
$anredeCk = $anrede == "Frau" ? " checked=
'checked'" : "";
$name = isset($_POST["name"]) ? $_POST["name"] : "";
$mailfrom = isset($_POST["mailfrom"]) ? $_POST["mailfrom"] : "";
$betreff = isset($_POST["betreff"]) ? $_POST["betreff"] : "";
$nachricht = isset($_POST["nachricht"]) ? $_POST["nachricht"] : "";
$kopie = isset($_POST["kopie"]) ? " checked=
'checked'" : "";
$dtype = implode(", ", array_unique(array_keys($datentyp)));
$dsize = number_format(($max_groesse / 1024), 1, ",", ".");
// Spamschutz: Rechenaufgabe
$zufallszahl1 = mt_rand(1, 90);
$zufallszahl2 = mt_rand(1, 9);
$ergebnis = md5($zufallszahl1 + $zufallszahl2);
$code = "&#" . (48 + $zufallszahl2) . ";";
// Formular erstellen
$formular = "<form action=
'" . $_SERVER["SCRIPT_NAME"] . "' method='post'
enctype=
'multipart/form-data'>
<table class='form_table'>
<tr><td colspan='2'><hr></td></tr>
<tr><td colspan='2' class='form_pflicht'><!-- Fehleranzeige --></td></tr>
<tr><td><label>Anrede:</label></td>
 
<td><input type='radio' name='anrede' value='Herr' checked='checked' id='Herr'>
     <label
for='Herr'>Herr</label> &nbsp;
     <input type='radio' name='anrede' value='Frau'" . $anredeCk . " id='Frau'>
     <label
for='Frau'>Frau</label></td>
</tr><tr>
 
<td><label for='Name'>Name: <span class='form_pflicht'>*</span></label></td>
 
<td><input type='text' size='35' name='name' value='" . $name . "' id='Name'></td>
</tr><tr>
 
<td><label for='Email'>E-Mail: <span class='form_pflicht'>*</span></label></td>
 
<td><input type='text' size='45' name='mailfrom' value='" . $mailfrom . "' id='Email'></td>
</tr><tr>
 
<td><label for='Betreff'>Betreff: <span class='form_pflicht'>*</span></label></td>
 
<td><input type='text' size='50' name='betreff' value='" . $betreff . "' id='Betreff'></td>
</tr><tr>
 
<td><label for='Nachricht'>Nachricht: <span class='form_pflicht'>*</span></label></td>
 
<td><textarea name='nachricht' rows='8' cols='63' id='Nachricht'>" . $nachricht . "</textarea></td>
</tr><tr><td></td>
 
<td><input type='checkbox' id='marke3' name='kopie' $kopie>
     <label for='marke3'>Ich w&uuml;nsche eine Kopie dieser Nachricht an meine E-Mail-Adresse</label></td>
</tr><tr>
 
<td><label for='upload'>Bild ausw&auml;hlen: </label></td>
 
<td><input type='file' size='45' name='datei' id='upload'>
</tr><tr class='small'>
 
<td></td>
 
<td>Dateiformat: " . $dtype . " - Dateigr&ouml;&szlig;e max.: " . $dsize . " KB</td>
</tr><tr>
 
<td><label for='Spamschutz'>Spamschutz: <span class='form_pflicht'>*</span></label></td>
 
<td><em>" . $zufallszahl1 . " &#43; " . $code . "</em> =
 
<input type='text' name='zip' size='3' id='Spamschutz'>
 <input
type='hidden' name='zip2' value='" . $ergebnis . "'>
 
<font class='small'><b>(Rechenaufgabe l&ouml;sen)</b></font></td>
</tr><tr class='form_bg'>
 
<th colspan='2'><br>&nbsp;
  
<span class='form_pflicht'>&#10034;</span>
  <font
class='small'>Bitte alle Pflichtfelder ausf&uuml;llen!</font>&nbsp;&nbsp;&nbsp;&nbsp;
  
<img src='mailform/abbrechen.gif' onClick=\"location.href='" . $_SERVER["SCRIPT_NAME"] . "'\" value='Abbrechen'
  title=
'Abbrechen' style='cursor: pointer'>&nbsp; &nbsp; &nbsp; &nbsp;
  
<input type='image' src='mailform/absenden.gif' name='sendung' title='Formular absenden'>
 
</th></tr><tr><td colspan='2'><hr></td></tr>
<tr align='center' class='small'>
  
<td colspan='2'><i><b>$names</b><br> $strasse, $plz $ort, Telefon: $telnr</i></td>
 
</tr><tr><td colspan='2'><hr></td></tr>
</table>
</form>";

if (isset($_POST["sendung_x"])) {
// Pflichtfelder überprüfen
if (strlen($name) <= 2) $eingabefehler .= "&bull;
Name fehlt!<br>";
if (filter_var($mailfrom, FILTER_VALIDATE_EMAIL) === false) $eingabefehler .= "&bull;
Fehler in der E-Mail-Adresse!<br>";
if (strlen($betreff) <= 6) $eingabefehler .= "&bull;
Der Betreff " . ((strlen($betreff) == 0) ? " fehlt" : " ist zu kurz") . " (min. 7 Zeichen)!<br>";
if (strlen($nachricht) <= 19) $eingabefehler .= "&bull;
Die Nachricht " . ((strlen($nachricht) == 0) ? " fehlt" : " ist zu kurz") . " (min. 20 Zeichen)!<br>";
if (md5($_POST["zip"]) != $_POST["zip2"]) $eingabefehler .= "&bull;
Der Spamschutz ist leider falsch!<br>";
// Datei hochladen
$link = "";
$status = "";
if ($_FILES["datei"]["name"] != "" && $_FILES["datei"]["error"] == 0) {
 if (in_array($_FILES["datei"]["type"], $datentyp)) {
  if ($_FILES["datei"]["size"] <= $max_groesse) {
   $array = explode(".", basename($_FILES["datei"]["name"]));
   $dateiendung = strtolower(end($array));
   $dateiname = preg_replace("/[^a-z0-9_-]/", "", strtolower($array[0]));
   $neuername = substr($dateiname, 0, 25) . "_" . mt_rand(1, 999) . "." . $dateiendung;
    move_uploaded_file($_FILES["datei"]["tmp_name"], $verzeichnis . $neuername);
    if (file_exists($verzeichnis . $neuername)) {
     $link = $absverzeichnis . $neuername;
     $status = "
Die Datei &bdquo;" . $neuername . "&rdquo; wurde erfolgreich hoch geladen.<br><br>";
    }
    else {
     $eingabefehler .= "&bull;
Beim hochladen der Datei ist leider ein Fehler aufgetreten!<br>";
   }
  }
  else {

   
$eingabefehler .= "&bull; Die Datei ist leider zu groß!<br>";
 }
 }
 else {
  $eingabefehler .= "&bull;
Ung&uuml;ltiges Dateiformat!<br>";
 
}
}
if ($eingabefehler == "") {

// Diese Nachricht wird an die E-Mail-Adresse gesendet (\n = neue Zeile)
$datum = date("d.m.Y H:i");
 $text = "
Datum: $datum\n====Anrede: $anrede\nName: $name\nE-Mail: $mailfrom\nBetreff: $betreff\nNachricht: $nachricht\n\nDatei: $link\n====";
// E-Mail versenden
 @mail($mailto, $betreff, $text, "
From: " . $mailfrom);
// Bestätigung der E-Mail
 echo "<p class='danke'>" .
 "Vielen Dank, die Nachricht wurde gesendet.
<br><br>";
echo $status; // "Die Datei X wurde erfolgreich hochgeladen"
 
if (isset($_POST["kopie"])) {
// Diese Nachricht wird an die E-Mail-Adresse des Besuchers gesendet
  
$kopie = "Vielen Dank für den Besuch bei $url .\nWir haben folgende Nachricht erhalten:\n====\nAnrede: $anrede\nName: $name\nE-Mail: $mailfrom\nBetreff: $betreff\nNachricht: $nachricht\n\n====\nMit freundlichen Grüßen,\n$signatur";
// E-Mail Kopie versenden
 
@mail($mailfrom, "Kopie einer Anfrage", $kopie, "From: " . $mailto);
// Bestätigung der E-Mail Kopie
 
echo "Eine Kopie der Anfrage wird an die eigene E-Mail-Adresse gesendet.<br><br>";
 }
// Link zur Startseite
 
echo "<a href='" . $url . "' target='_top'>Weiter zur Startseite</a></p>";
}
else {

// Eingabefehler und Formular ausgeben
echo str_replace("<!-- Fehleranzeige -->",
 "
<strong>Die Nachricht wurde aus folgendem Grund nicht gesendet:</strong><br>" .
$eingabefehler, $formular);
}
}
else {
// Formular ausgeben
echo $formular;
}
?>

Variante 2

[Objekt HTML]

Code für das HTML-Objekt:


<?php include "mailform/mailform.php"; ?>

Code der PHP-Datei (settings.php):


<?php

// Name/Signatur (wird für die E-Mail-Kopie an den Besucher benötigt!).
$signatur = "
Mario - Website X5 Helpsite";
// Vorname und Name, Strasse und Nr., PLZ und Ort, Telefonnummer (für Impressum).
$names = "
Michael Mustermann";
$strasse = "
Musterstrasse 1";
$plz = "
12345";
$ort = "
Musterhausen";
$telnr = "
01234-987654";
// E-Mail-Adresse des Absenders.
$mailto = "
kontakt@home-wiekau.de";  
// Webseite (URL) wo das Script eingesetzt wird.
$url = "
http://www.x5forum.home-wiekau.de";
// Verzeichnis für Anhänge. Das Verzeichnis benötigt Schreibrechte CHMOD 777.
$verzeichnis = "
mailform/files/";
// Absoluter Pfad zum Verzeichnis, in der E-Mail erscheint dann ein Link zur Datei.
$absverzeichnis = "
http://www.x5forum.home-wiekau.de/mailform/files/";
// Die Größe des Bildes das maximal hochgeladen werden darf (in Bytes), 1024 Bytes = 1 KB.   
$max_groesse =
1024;
// Angabe der Datentypen (Mimetypen) die hochgeladen werden dürfen.
$datentyp = array(     
"png" => "image/png",     
"jpg" => "image/jpeg",
"jpg" => "image/pjpeg",
"jpeg" => "image/jpeg",
"gif" => "image/gif",
);

?>
Weitere Information über Mimetypen gibt es hier.

Code der CSS-Datei (mail_style.css):

.form_table { width: 590px; font-family: tahoma; color: #000; font-size: 12px; line-height: 170%;  background-color: #ECF4FC; text-indent: 15px; border: 1px  solid #3E78FD; }
label
{ cursor: pointer; }
input
{ vertical-align: middle; margin-right: 20px; }
.form_pflicht
{ color: #FF0000; font-size: 14px; border: 0px; text-indent: 15px; margin: 20px; font-family: tahoma; }
.danke, .danke a
{ font-family: tahoma; color: #FF0000; font-size: 14px; font-weight: bold;  text-align: center; vertical-align: middle; padding: 10px; }
.small
{ font-family: tahoma; font-size: 10px; }
hr
{ color: #3E78FD; background-color: #3E78FD; height: 1px; border: none; width: 95%; }

Feedbacks zu ""
16 Kommentare
Durchschnittliche Bewertung: 1164.9/5


1 2 3 4 >>
Admin-Antwort
2018-11-12 12:04:39
Ich denke es ist ein Problem der Spamschutzeinstellung. Einfach mal die Corewerte auf dem Server anpassen und/oder die Whitelist aktivieren und einstellen.
2018-11-12 12:03:26
Hallo, nutze das Formular jetzt schon 1 Jahr, habe mich immer gewundert, warum keine Emails kommen, am Anfang ging es auch, aber jetzt werden keine Mails mehr versendet, kann es an einer höeren PHP Version vom Provider liegen, habe mit mehreren Mailadressen probiert, es kommt nichts an, auch hochladen von Bildern geht nicht, es kommt aber keine Fehlermeldung.
Admin-Antwort
2018-11-12 12:01:10
Das ist richtig, die Uploadgröe wird in der settings eingetragen: $max_groesse = 1024;
2018-11-12 12:00:03
Frage, Datei hochladen mit 1 KB ist ja wohl etwas wenig, was ändere ich in der php Settings ??
Admin-Antwort
2018-11-12 11:58:12
In der settings.php: $mailto = "kontakt@homewiekau.de;muster@mustermann.de"; Kann aber nicht jeder Hoster vermitteln.
1 2 3 4 >>
Vielen Dank für Dein Feedback.
HTML5
Button Spenden

© 2009 - 2018





Besucher Statistik
» 2 Online
» 525 Heute
» 469 Gestern
» 1760 Woche
» 5711 Monat
» 75532 Jahr
» 322110 Gesamt
Record: 1420 (10.04.2014)
Gesamt Downloads:
Zurück zum Seiteninhalt