Hauptmenü
Ein professionelles PHP-
Dieses Script versendet eine E-
Die ZIP-
Auch hier gibt es zwei Möglichkeiten zur Einbindung in die Seite.
Code für den HEAD-
<link rel="stylesheet" type="text/css" href="mailform/mail_style.css" />
Variante 1
Code für das HTML-
<?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-
<table>
<tr><td colspan='2' class='pflichtfeld'><!-
<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>
<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-
<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
</tr>
<tr class='hintergrund'>
<td><label for='upload'>Bild ausw
<td><input type='file' size='20' name='datei' id='upload'><br /><small>Dateiformat: " . $dtype . " -
</tr><br />
<tr class='hintergrund'>
<td colspan='2'>
<label for='Spamschutz'>Spamschutz: <span class='pflichtfeld'>*</span></label> <em>" . $zufallszahl1 . " + " . $code . "</em> =
<input type='text' name='zip' size='3' id='Spamschutz'>
<input type='hidden' name='zip2' value='" . $ergebnis . "'>
<small>(Rechenaufgabe lösen)</small></td>
</tr>
<tr class='hintergrund'>
<th colspan='2'><br />
<span class='pflichtfeld'>✲</span>
Bitte alle Pflichtfelder ausfüllen!
<img src='mailform/abbrechen.gif' onClick=\"location.href='" . $_SERVER["SCRIPT_NAME"] . "'\" value='Abbrechen' title='Abbrechen' style='cursor: pointer'>
<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 .= "• Name fehlt!<br>";
if (filter_var($mailfrom, FILTER_VALIDATE_EMAIL) === false) $eingabefehler .= "• Fehler in der E-
if (strlen($betreff) <= 6) $eingabefehler .= "
if (strlen($nachricht) <= 19) $eingabefehler .= "• Die Nachricht " . ((strlen($nachricht) == 0) ? " fehlt" : " ist zu kurz") . " (min. 20 Zeichen)!<br>";
if (md5($_POST["zip"]) != $_POST["zip2"]) $eingabefehler .= "• 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-
$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
}
else {
$eingabefehler .= "• Beim hochladen der Datei ist leider ein Fehler aufgetreten!<br>";
}
}
else {
$eingabefehler .= "• Die Datei ist leider zu groß!<br>";
}
}
else {
$eingabefehler .= "• Ungültiges Dateiformat!<br>";
}
}
if ($eingabefehler == "") {
// Diese Nachricht wird an Ihre E-
$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-
Betreff: $betreff \n
Nachricht: $nachricht \n\n
Datei: $link \n
====";
// E-
@mail($mailto, $betreff, $text, "From: " . $mailfrom);
// Bestätigung der E-
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-
$kopie = " Vielen Dank fuer Ihren Besuch bei $url .\n
Wir haben folgende Nachricht erhalten:\n
====\n
Anrede: $anrede \n
Name: $name \n
E-
Betreff: $betreff \n
Nachricht: $nachricht \n\n
====\n
Mit freundlichem Gruss,\n
$signatur
";
// E-
@mail($mailfrom, "Kopie einer Anfrage", $kopie, "From: " . $mailto);
// Bestätigung der E-
echo "Sie erhalten eine Kopie Ihrer Anfrage an Ihre E-
}
// Link zur Startseite, ggf. anpassen
echo "<a href='index.php'>Weiter zur Startseite</a></p>";
}
else {
// Eingabefehler und Formular ausgeben
echo str_replace("<!-
"<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-
<?php include "mailform/mailform.php"; ?>
Code der PHP-
<?php
// Name/Signatur (wird für die E-
$signatur = "meine-
$mailto = "adresse@domain.tld";
// Webseite (URL) wo das Script eingesetzt wird. (Nicht benötigte Zeile löschen)
$url = "http://www.domain.tld/kontakt-
$url = "http://www.domain.tld/mailform/mailform.php"; //bei Include-
// 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-
$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-
?>
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;
}
Hier noch schnell meine Versuchsseite: http://wommel.org/x5/zeltlager/mail.html
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".