Kontakt Formular - Website X5 Hilfe - Die Helpsite

Website hundertprozent CO2 neutral mit Host Europe
Direkt zum Seiteninhalt

Hauptmenü

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 beherrschen. Die aufrufende Datei muss somit die Dateiendung .php aufweisen.
Die ZIP-Datei entpacken und das Verzeichnis "mailform" auf den Server kopieren. 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 im Verzeichnis mailform ein Unterverzeichnis "files" vorhanden sein, dass die Schreibrechte CHMOD 777 besitzt.
Auch hier gibt es zwei Möglichkeiten zur Einbindung in die Seite.


 


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

  Bitte alle Pflichtfelder ausfüllen!       





Button Download Script


Code für den HEAD-Bereich:

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



Variante 1


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>
<tr><td colspan='2' class='pflichtfeld'><!-- Fehleranzeige --></td></tr>
<tr class='hintergrund'>
 <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 class='hintergrund'>
 <td><label for='Name'>Name: <span class='pflichtfeld'>*</span></label></td>
 <td><input type='text' size='35' name='name' value='" . $name . "' id='Name'></td>
</tr>
<tr class='hintergrund'>
 <td><label for='Email'>E-Mail-Adresse: <span class='pflichtfeld'>*</span></label></td>
 <td><input type='text' size='45' name='mailfrom' value='" . $mailfrom . "' id='Email'></td>
</tr>
<tr class='hintergrund'>
 <td><label for='Betreff'>Betreff: <span class='pflichtfeld'>*</span></label></td>
 <td><input type='text' size='50' name='betreff' value='" . $betreff . "' id='Betreff'></td>
</tr>
<tr class='hintergrund'>
 <td colspan='2'><label for='Nachricht'>Nachricht:
 <span class='pflichtfeld'>*</span></label><br />
 <textarea name='nachricht' rows='6' cols='70' id='Nachricht'>" . $nachricht . "</textarea></td>
</tr>
<tr class='hintergrund'>
 <td colspan='2'>
 <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 class='hintergrund'>
 <td><label for='upload'>Bild ausw
&auml;hlen: </label></td>
 <td><input type='file' size='20' name='datei' id='upload'><br /><small>Dateiformat: " . $dtype . " - Dateigr
&ouml;&szlig;e max.: " . $dsize . " KB</small></td>
</tr><br />
<tr class='hintergrund'>
 <td colspan='2'>
 <label for='Spamschutz'>Spamschutz: <span class='pflichtfeld'>*</span></label>
&nbsp; <em>" . $zufallszahl1 . " &#43; " . $code . "</em> =
<input type='text' name='zip' size='3' id='Spamschutz'>
<input type='hidden' name='zip2' value='" . $ergebnis . "'>
<small>(Rechenaufgabe l
&ouml;sen)</small></td>
</tr>
<tr class='hintergrund'>
 <th colspan='2'><br />
 
&nbsp; <span class='pflichtfeld'>&#10034;</span>
 Bitte alle Pflichtfelder ausf
&uuml;llen!&nbsp; &nbsp;
 <img src='mailform/abbrechen.gif' onClick=\"location.href='" . $_SERVER["SCRIPT_NAME"] . "'\" value='Abbrechen' title='Abbrechen' style='cursor: pointer'>
&nbsp; &nbsp;
 <input type='image' src='mailform/absenden.gif' name='sendung' title='Formular absenden'>
 </th>
</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 Ihre E-Mail-Adresse gesendet (\n = neue Zeile)
 $datum = date("d.m.Y H:i");
 $text = "
  Folgende Nachricht wurde im Kontaktformular hinterlassen:\n\n
  Datum: $datum \n
  ====
  Anrede: $anrede \n
  Name: $name \n
  E-Mail: $mailfrom \n
  Betreff: $betreff \n
  Nachricht: $nachricht \n\n
  Datei: $link \n
  ====";
 // E-Mail versenden
 @mail($mailto, $betreff, $text, "From: " . $mailfrom);
 // Bestätigung der E-Mail
 echo "<p class='hintergrund 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 fuer Ihren Besuch bei $url .\n
  Wir haben folgende Nachricht erhalten:\n

  ====\n  
  Anrede: $anrede \n
  Name: $name \n
  E-Mail: $mailfrom \n
  Betreff: $betreff \n
  Nachricht: $nachricht \n\n
  ====\n

  Mit freundlichem Gruss,\n
  $signatur
  ";
  // E-Mail Kopie versenden
  @mail($mailfrom, "Kopie einer Anfrage", $kopie, "From: " . $mailto);
  // Bestätigung der E-Mail Kopie
  echo "Sie erhalten eine Kopie Ihrer Anfrage an Ihre E-Mail-Adresse.<br><br>";
 }
 // Link zur Startseite, ggf. anpassen
 echo "<a href='index.php'>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

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 = "meine-signatur";
 
// E-Mail-Adresse des Absenders.
$mailto = "adresse@domain.tld";  
     
// Webseite (URL) wo das Script eingesetzt wird. (Nicht benötigte Zeile löschen)
$url = "http://www.domain.tld/kontakt-formular.php";
//bei Direkt-Einbindung
$url = "http://www.domain.tld/mailform/mailform.php";
//bei Include-Einbindung
    
// Verzeichnis in das die Anhänge hochgeladen werden sollen.
// 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.domain.tld/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 Mimetypen: http://www.x5forum.home-wiekau.de/html_mimetypen.php.



?>

 


Code der CSS-Datei (mail_style.css):


body, textarea, table {
 font-family: Verdana, Sans-Serif;
 font-size: 12px;
 color: #000000;
}
table {
 margin: auto;
 border-spacing: 1px;
}
th, td {
 border: solid 1px #C0C0C0;
 padding: 3px;
}
label {
 cursor: pointer;
}
img, input[type='image'] {
 vertical-align: middle;
}
.pflichtfeld {
 color: #FF0000;
 border: 0px;
}
.hintergrund {
 color: #000000;
 background-color: #D5E1F2;
}
.danke, .danke a {
 color: #000000;
 text-align: center;
 margin-top: 200px;
 padding: 10px;
}
/* Tabelleneffekt */
.hintergrund:hover {
 background-color: #C4D0E1;
}


 

 
Feedbacks zu ""

es gibt insgesamt 2 Kommentar(e)


  1. Peter Buers schreibt am 26.01.2012, 10.54 Uhr

    Hier noch schnell meine Versuchsseite: http://wommel.org/x5/zeltlager/mail.html

  2. Peter Buers http://www.wommel.org schreibt am 26.01.2012, 10.49 Uhr

    Hallo,ich habe ein wenig Schwierigkeiten mit der Umsetzung.Ich möchte gerne eine Seite (mail.html) erstellen auf der sich Besucher bei mir melden können. Ich verwende Website X5 V9. Jetzt meine Frage:Wo genau muss ich den Code für den HEAD Berich einbauen. Ist hier die mail.html gemeint?Ist Variante 2 nur ein Link? Sie merken schon ich kenn mich nicht so doll aus. Ich würde mich aber trotzdem über ein wenig Hilfe (Schritt für Schritt) freuen.
    Antwort: Die Seite darf keine html sein, sondern benötigt die Dateiendung php. 2 Sitemap - Seite markieren (1xklicken), oberes rechtes Symbol - Erweitert. Dort Dateinamenformat von html auf php einstellen und das große Feld ist der HEAD-Bereich für diese Seite. Dein Server muss auch php unterstützen. Variante 1 und 2 unterscheiden sich kaum, nur dass Du die Einstellungen bei 1 direkt auf der Seite tätigst und bei 2 im Ordner "mailform" auf dem Server in der Datei "mailform.php".


Name*
Vorname
Kommentar*
Email *
Homepage
Telefon
Sicherheitscode *
 
 

© 2009 - 2012

Suche



  Besucher Statistik
 » 5 Online
 » 62 Heute
 » 608 Woche
 » 1691 Monat
 » 12263 Jahr
 » 26365 Gesamt
Rekord: 273 (24.04.2012)
Newsletter
Zurück zum Seiteninhalt | Zurück zum Hauptmenü