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 ggf. auch mit Anhängen. Auch eine Spamschutz ist integriert.
In der Datei "settings.php" werden die Grundeinstellungen vorgenommen, 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 Anhänge muss auf dem Server im Verzeichnis "Obj59_0" ein Unterverzeichnis "files" mit Schreibrechten CHMOD 777 angelegt sein (Standard: vorhanden).
Hier sind 2 Varianten zur Einbindung erläutert. Sollte dieses Menü auf mehreren Seiten eingesetzt werden, empfiehlt sich die Variante per <?php include "...."; ?> , um Textänderungen des Menüs nur in einer Datei durchführen zu müssen. Hier muss aber die ausführende Datei die Dateiendung .php aufweisen, um den Code ausführen zu können.
ZIP-Datei in ein beliebiges Verzeichnis auf dem PC entpacken und das Verzeichnis "wsX5Obj" auf den Webserver in das Root-Verzeichnis kopieren. HEAD-Code in den HEAD-Bereich <head>.....</head> und HTML-Code in den BODY-Bereich <body>.....</body> der aufrufende Datei einfügen.
Eine demo.php ist beigefügt, die zum Test in das Root-Verzeichnis des Webservers kopiert werden kann.
Aufruf: "http://www.domain.tld/demo.php"
Download Button
x runter geladen!
Wichtig:
Je nach verwendeten Webdesign-Programmen kann es zu Abweichungen in der Darstellung des Formulrs kommen.
Sollten mit der Darstellung auf der Homepage Zeilenumbruchprobleme zu sehen sein, einfach nur in der Datei "mail_style.css" in der Classifizierung
.Obj59_table die Objektbreite width: 590px; oder/und im Script selbst Zeile 58 cols='60' entsprechend anpassen.
 
 
 
Erlaubte Dateiformate: png, jpg, jpeg, gif - Dateigröße max.: 9,8 KB
43 + 9 = (Rechenaufgabe lösen)
Bitte alle Pflichtfelder ausfüllen!             

Michael Mustermann
Musterstrasse 1, 12345 Musterhausen, Telefon: 01234-987654
Code für den <HEAD> Bereich
<link rel="stylesheet" type="text/css" href="wsX5Obj/Obj59_0/mail_style.css" />
Code für den <BODY> Bereich
<?php include "wsX5Obj/Obj59_0/mail_form.php"; ?>

alternative Einbindung:
<a name="Obj59_Anker">&nbsp;</a>
<?php
include_once 'wsX5Obj/Obj59_0/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"] . "#Obj59_Anker' method='post'
enctype='multipart/form-data'>
<table class='Obj59_table'>
<tr>
<td colspan='2' class='Obj59_pflicht'><!-- Fehleranzeige --></td>
</tr><tr>
<td>&nbsp;</td>
</tr><tr>
<td><label>Anrede: </label></td>
<td>
<input class='Obj59_format' type='radio' name='anrede' value='Herr' checked='checked' id='Herr'>
<label for='Herr'>Herr</label>&nbsp;
<input class='Obj59_format' type='radio' name='anrede' value='Frau'" . $anredeCk . " id='Frau'>
<label for='Frau'>Frau</label>
</td>
</tr><tr>
<td>
<label for='Name'>Name: <span class='Obj59_pflicht'>*</span></label>
</td><td>
<input class='Obj59_format' type='text' size='35' name='name' value='" . $name . "' id='Name'>
</td>
</tr><tr>
<td>
<label for='Email'>E-Mail-Adresse: <span class='Obj59_pflicht'>*</span></label>
</td><td>
<input class='Obj59_format' type='text' size='45' name='mailfrom' value='" . $mailfrom . "' id='Email'>
</td>
</tr><tr>
<td>
<label for='Betreff'>Betreff: <span class='Obj59_pflicht'>*</span></label>
</td><td>
<input class='Obj59_format' type='text' size='50' name='betreff' value='" . $betreff . "' id='Betreff'>
</td>
</tr><tr>
<td>
<label for='Nachricht'>Nachricht: <span class='Obj59_pflicht'>*</span></label>
</td><td>
<textarea class='Obj59_format' name='nachricht' rows='8' cols='60' id='Nachricht'>" . $nachricht . "</textarea>
</td>
</tr><tr>
<td></td>
<td>
<input class='Obj59_format' type='checkbox' id='marke3' name='kopie' $kopie>
<label for='marke3'>
Ich m&ouml;chte eine Kopie dieser Nachricht an meine E-Mail-Adresse
</label>
</td>
</tr><tr>
<td>
<label for='upload'>Datei w&auml;hlen: </label>
</td><td>
<input class='Obj59_format' type='file' size='45' name='datei' id='upload'>
</td>
</tr><tr class='Obj59_small'>
<td></td>
<td>
Erlaubte Dateiformate: " . $dtype . " - Dateigr&ouml;&szlig;e max.: " . $dsize . " KB
</td>
</tr><tr>
<td>
<label for='Spamschutz'>Spamschutz: <span class='Obj59_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='Obj59_small'>(Rechenaufgabe l&ouml;sen)</font>
</td>
</tr><tr>
<th colspan='2'>
<span class='Obj59_pflicht'>&#10034; <font class='Obj59_small'>
Bitte alle Pflichtfelder ausf&uuml;llen!</font></span>
&nbsp;&nbsp;&nbsp;&nbsp;
<img class='Obj59_format' src='wsX5Obj/Obj59_0/abbrechen.gif'
onClick=\"location.href='" . $_SERVER["SCRIPT_NAME"] . "#Obj59_Anker'\" value='Abbrechen'
title='Abbrechen' style='cursor: pointer'>&nbsp; &nbsp; &nbsp; &nbsp;
<input class='Obj59_format' type='image' src='wsX5Obj/Obj59_0/absenden.gif' name='sendung'
title='Formular absenden'>
</th>
</tr><tr>
<td colspan='2'>
<hr>
</td>
</tr><tr align='center' class='Obj59_Obj59_small'>
<td colspan='2'>
<i><b>$names</b><br> $strasse, $plz $ort, Telefon: $telnr</i>
</td>
</tr>
</table>
</form>";
if (isset($_POST["sendung_x"])) {
// Pflichtfelder überprüfen
if (strlen($name) <= 2) $eingabefehler .= "&nbsp;&nbsp;&bull; Name fehlt!<br>";
if (filter_var($mailfrom, FILTER_VALIDATE_EMAIL) === false) $eingabefehler .= "&nbsp;&nbsp;&bull; Fehler in der E-Mail-Adresse!<br>";
if (strlen($betreff) <= 6) $eingabefehler .= "&nbsp;&nbsp;&bull; Der Betreff " . ((strlen($betreff) == 0) ? " fehlt" : " ist zu kurz") . " (min. 7 Zeichen)!<br>";
if (strlen($nachricht) <= 19) $eingabefehler .= "&nbsp;&nbsp;&bull; Die Nachricht " . ((strlen($nachricht) == 0) ? " fehlt" : " ist zu kurz") . " (min. 20 Zeichen)!<br>";
if (md5($_POST["zip"]) != $_POST["zip2"]) $eingabefehler .= "&nbsp;&nbsp;&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 .= "&nbsp;&nbsp;&bull; Beim hochladen der Datei ist leider ein Fehler aufgetreten!<br>";
}
} else {
$eingabefehler .= "&nbsp;&nbsp;&bull; Die Datei ist leider zu groß!<br>";
}
} else {
$eingabefehler .= "&nbsp;&nbsp;&bull; Ung&uuml;ltiges Dateiformat!<br>";
}
}
if ($eingabefehler == "") {
// Diese Nachricht wird an Deine E-Mail-Adresse gesendet (\n = neue Zeile ohne Zeilenumbrüche)
$datum = date("d.m.Y H:i");
$text = "Anfrage vom: $datum\n----------\nAnrede: $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='form_bg Obj59_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 (\n = neue Zeile ohne Zeilenumbrüche)
$kopie = "Vielen Dank f&uuml;r Deinen 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&uuml;&szlig;en,\n\n$signatur";
// E-Mail Kopie versenden
@mail($mailfrom, "Kopie einer Anfrage", $kopie, "From: " . $mailto);
// Bestätigung der E-Mail Kopie
echo "Du erh&auml;lst eine Kopie Deiner Anfrage an Deine E-Mail-Adresse.<br><br>";
}
// Link zur Umleitungsseite
echo "<a href='" . $uml . "' target='_top'>Weiter...</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;
}
?>
Code Datei "settngs.php"
<?php
// Name/Signatur (wird für die E-Mail-Kopie an den Besucher benötigt!).
$signatur = "Admin - 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";
// Webseite (Umleitung) welche Seite nach dem Senden öffnet.
$uml = "http://www.x5forum.home-wiekau.de/wsx5sys07_a.php";
// Verzeichnis in das die Anhänge hochgeladen werden sollen. Das Verzeichnis benötigt Schreibrechte CHMOD 777.
$verzeichnis = "wsX5Obj/Obj59_0/files/";
// Absoluter Pfad zum Verzeichnis, in der E-Mail erscheint dann ein Link zur Datei.
$absverzeichnis = "http://www.x5forum.home-wiekau.de/wsX5Obj/Obj59_0/files/";
// Die Größe des Bildes das maximal hochgeladen werden darf (in Bytes), 1024 Bytes = 1 KB.  
$max_groesse = 5000;
// 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 Mimetypen: http://www.x5forum.home-wiekau.de/wsX5Lst56.php
?>
Code Datei "mail_style.css"
.Obj59_table {
width: 650px;
font-family: tahoma;
color: #000;
font-size: 12px;
line-height: 170%;
background-color: #ECF4FC;
text-indent: 15px;
border: 1px solid #3E78FD;
}
.Obj59_danke, .Obj59_danke a {
font-family: tahoma;
color: #FF0000;
font-size: 14px;
font-weight: bold;
text-align: center;
vertical-align: middle;
padding: 10px;
}
.Obj59_format { vertical-align: top; margin-top: 3px; }
.Obj59_pflicht { font-family: tahoma; color: #FF0000; font-size: 10px; }
.Obj59_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 - 2019





Besucher Statistik
» 1 Online
» 41 Heute
» 158 Gestern
» 199 Woche
» 3808 Monat
» 127178 Jahr
» 454934 Gesamt
Record: 2382 (29.03.2019)
Gesamt Downloads:
Zurück zum Seiteninhalt