<?php
/*
Aktion: Formulardaten als E-Mail versenden.
Formular - PHP 5.4+, Zeichenkodierung: UTF-8
Siehe: www.webbausteine.de/tipps/schriftzeichen_richtig_darstellen.php
Erstellt mit dem Formular Generator (12.01.2016) -
www.webbausteine.de/tools/formulargenerator.php
Bitte testen Sie das Formular ausführlich und
beachten Sie die Hinweise im Quelltext!
*/
// PHP Fehlermeldungen (1 um das Formular zu testen) anzeigen.
error_reporting(1); // (0/1)
// Weiterleitung - Nach dem absenden des Formulars,
// gelangt der Benutzer über einen Link auf folgende Seite:
$Weiterleitung = "index.php";
// Automatische Weiterleitung
$Autoweiterleitung = 6; // Zeit in Sekunden
$name = isset($_POST["name"]) ? strip_tags(trim($_POST["name"])) : ""; // Name
$email = isset($_POST["email"]) ? strip_tags(trim($_POST["email"])) : ""; // E-Mail
$telefon = isset($_POST["telefon"]) ? strip_tags(trim($_POST["telefon"])) : ""; // Telefon
$land = isset($_POST["land"]) ? strip_tags(trim($_POST["land"])) : ""; // Land
$fahrzeugmo = isset($_POST["fahrzeugmo"]) ? $_POST["fahrzeugmo"] : ""; // Fahrzeugmodell
// Auswahlliste: Fahrzeugmodell
$array = [
"Toyota Hilux Double Cab 4WD ohne Ausrüstung",
"Toyota Hilux Double Cab 4WD mit 1 Dachzelt",
"Toyota Hilux Double Cab 4WD mit 2 Dachzelten",
"Toyota Hilux Double Cab 4WD Bushcamper",
];
$fahrzeugmoAW = "<select name='fahrzeugmo' size='1' required='required'>";
foreach ($array as $value) {
$fahrzeugmoAW .= "\n <option value='" . $value . "'" .
((isset($_POST["fahrzeugmo"]) ? $_POST["fahrzeugmo"] : "") == $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$fahrzeugmoAW .= "\n </select>";
$zielort = isset($_POST["zielort"]) ? implode(", ", $_POST["zielort"]) : ""; // Zielort
// Mehrfachauswahlliste: Zielort
$array = [
"Südafrika", "Namibia", "Botswana", "Zimbabwe",
"Sambia", "Mozambique", "Lesotho", "Swaziland", ];
$zielortAW = "<select name='zielort[]' size='8' multiple='multiple' required='required'>";
foreach ($array as $element) {
!empty($_POST["zielort"]) ?
$zielortAW .= in_array($element, $_POST["zielort"]) ?
"\n <option value='" . $element . "' selected='selected'>" . $element . "</option>" :
"\n <option value='" . $element . "'>" . $element . "</option>" :
$zielortAW .= "\n <option value='" . $element . "'>" . $element . "</option>";
}
$zielortAW .= "\n </select>";
// Auswahlliste: Fahrzeugübernahme am (Tag)
// Bestimmte Tage auswählen z.B.: $Tage = array(10, 20, 30);
$Tage = range(1, 31); // Start, Ende
array_unshift($Tage, "1");
$Tag6 = isset($_POST["Tag6"]) ? $_POST["Tag6"] : "";
$tagKal6 = "\n <select name='Tag6' required='required'>";
foreach ($Tage as $value) {
$tagKal6 .= "\n <option value='" . $value . "'" .
((isset($_POST["Tag6"]) ? $_POST["Tag6"] : date("j")) === $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$tagKal6 .= "\n </select>\n ";
// Auswahlliste: Fahrzeugübernahme am (Monat)
// Bestimmte Monate auswählen z.B.: $Monate = array(3, 6, 9, 12);
$Monate = range(1, 12); // Start, Ende
array_unshift($Monate, "0");
$Monatsname = [1=>"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
array_unshift($Monatsname, "Januar");
$Monat6 = isset($_POST["Monat6"]) ? $_POST["Monat6"] : "";
$monatKal6 = "\n <select name='Monat6' required='required'>";
foreach ($Monate as $value) {
$monatKal6 .= "\n <option value='" . $value . "'" .
((isset($_POST["Monat6"]) ? $_POST["Monat6"] : date("n")) === $value ?
" selected='selected'" : "") . ">" . $Monatsname[$value] . "</option>";
}
$monatKal6 .= "\n </select>\n ";
// Auswahlliste: Fahrzeugübernahme am (Jahr)
// Bestimmte Jahre auswählen z.B.: $Jahre = array(2016, 2017, 2018);
$Jahre = range(date("Y") -0, date("Y") +2); // Y = Aktuelles Jahr -+ 10 Jahre
array_unshift($Jahre, "2016");
$Jahr6 = isset($_POST["Jahr6"]) ? $_POST["Jahr6"] : "";
$jahrKal6 = "\n <select name='Jahr6' required='required'>";
foreach ($Jahre as $value) {
$jahrKal6 .= "\n <option value='" . $value . "'" .
((isset($_POST["Jahr6"]) ? $_POST["Jahr6"] : date("Y")) === $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$jahrKal6 .= "\n </select>\n ";
$anreise_am = $Tag6 . "." . $Monat6 . "." . $Jahr6; // Datumsformat hier ggf. anpassen!
$anreise = isset($_POST["anreise"]) ? $_POST["anreise"] : ""; // Fahrzeugübernahme in
// Auswahlliste: Fahrzeugübernahme in
$array = [
"Johannesburg",
"Kapstadt",
"Windhoek",
"Victoria Falls",
"anderer Ort - bitte angeben",
];
$anreiseAW = "<select name='anreise' size='1' required='required'>";
foreach ($array as $value) {
$anreiseAW .= "\n <option value='" . $value . "'" .
((isset($_POST["anreise"]) ? $_POST["anreise"] : "") == $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$anreiseAW .= "\n </select>";
// Auswahlliste: Fahrzeugrückgabe am (Tag)
// Bestimmte Tage auswählen z.B.: $Tage = array(10, 20, 30);
$Tage = range(1, 31); // Start, Ende
array_unshift($Tage, "1");
$Tag8 = isset($_POST["Tag8"]) ? $_POST["Tag8"] : "";
$tagKal8 = "\n <select name='Tag8' required='required'>";
foreach ($Tage as $value) {
$tagKal8 .= "\n <option value='" . $value . "'" .
((isset($_POST["Tag8"]) ? $_POST["Tag8"] : date("j")) === $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$tagKal8 .= "\n </select>\n ";
// Auswahlliste: Fahrzeugrückgabe am (Monat)
// Bestimmte Monate auswählen z.B.: $Monate = array(3, 6, 9, 12);
$Monate = range(1, 12); // Start, Ende
array_unshift($Monate, "0");
$Monatsname = [1=>"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
array_unshift($Monatsname, "Januar");
$Monat8 = isset($_POST["Monat8"]) ? $_POST["Monat8"] : "";
$monatKal8 = "\n <select name='Monat8' required='required'>";
foreach ($Monate as $value) {
$monatKal8 .= "\n <option value='" . $value . "'" .
((isset($_POST["Monat8"]) ? $_POST["Monat8"] : date("n")) === $value ?
" selected='selected'" : "") . ">" . $Monatsname[$value] . "</option>";
}
$monatKal8 .= "\n </select>\n ";
// Auswahlliste: Fahrzeugrückgabe am (Jahr)
// Bestimmte Jahre auswählen z.B.: $Jahre = array(2016, 2017, 2018);
$Jahre = range(date("Y") -10, date("Y") +2); // Y = Aktuelles Jahr -+ 10 Jahre
array_unshift($Jahre, "2016");
$Jahr8 = isset($_POST["Jahr8"]) ? $_POST["Jahr8"] : "";
$jahrKal8 = "\n <select name='Jahr8' required='required'>";
foreach ($Jahre as $value) {
$jahrKal8 .= "\n <option value='" . $value . "'" .
((isset($_POST["Jahr8"]) ? $_POST["Jahr8"] : date("Y")) === $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$jahrKal8 .= "\n </select>\n ";
$abreise_am = $Tag8 . "." . $Monat8 . "." . $Jahr8; // Datumsformat hier ggf. anpassen!
$abreise = isset($_POST["abreise"]) ? $_POST["abreise"] : ""; // Fahrzeugrückgabe in
// Auswahlliste: Fahrzeugrückgabe in
$array = [
"Johannesburg",
"Kapstadt",
"Windhoek",
"Victoria Falls",
"anderer Ort - bitte angeben",
];
$abreiseAW = "<select name='abreise' size='1' required='required'>";
foreach ($array as $value) {
$abreiseAW .= "\n <option value='" . $value . "'" .
((isset($_POST["abreise"]) ? $_POST["abreise"] : "") == $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$abreiseAW .= "\n </select>";
$nachricht = isset($_POST["nachricht"]) ? strip_tags(trim($_POST["nachricht"])) : ""; // Nachricht
$KopieCk = isset($_POST["Kopie"]) ? " checked='checked'" : null; // E-Mail Kopie
// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = ["name"=>"", "email"=>"", "fahrzeugmo"=>"",
"zielort"=>"", "anreise_am"=>"", "anreise_am"=>"", "anreise"=>"", "abreise_am"=>"", "abreise_am"=>"", "abreise"=>"",
"sicherheit"=>""];
if (isset($_POST["submit"])) {
$Fehler["name"] = strlen($_POST["name"]) < 1 ? " Bitte füllen Sie dieses Feld aus!" : "";
$Fehler["email"] = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL) === false ? " Geben Sie eine gültige E-Mail-Adresse ein!" : "";
$Fehler["fahrzeugmo"] = $fahrzeugmo == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
$Fehler["zielort"] = !isset($_POST["zielort"]) ? " Bitte wählen Sie mind. eine Option aus!" : "";
$Fehler["anreise_am"] = !checkdate($_POST["Monat6"], $_POST["Tag6"], $_POST["Jahr6"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
$Fehler["anreise"] = $anreise == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
$Fehler["abreise_am"] = !checkdate($_POST["Monat8"], $_POST["Tag8"], $_POST["Jahr8"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
$Fehler["abreise"] = $abreise == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
$Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" : "";
}
// Sicherheitsabfrage - Rechenaufgabe
$Z0 = [mt_rand(1, 9), mt_rand(1, 9)];
$Z1 = max($Z0); $Z2 = min($Z0);
$Spam = $Z1 . " + &#" . (48 + $Z2) . ";";
$Schutz = md5($Z1 + $Z2);
// Formular erstellen
$Formular = "
<form name='Form' action='" . $_SERVER["SCRIPT_NAME"] . "#anker' method='post'>
<a id='anker'></a>
<p>
<label> Name:
<span class='pflichtfeld'>✲ " . $Fehler["name"] . "</span><br>
<input type='text' name='name' value='" . $name . "' size='50' required='required'>
</label>
</p>
<p>
<label> E-Mail:
<span class='pflichtfeld'>✲ " . $Fehler["email"] . "</span><br>
<input type='email' name='email' value='" . $email . "' size='50' required='required'>
</label>
</p>
<p>
<label> Telefon:
<br>
<input type='text' name='telefon' value='" . $telefon . "' size='50'>
</label>
</p>
<p>
<label> Land:
<br>
<input type='text' name='land' value='" . $land . "' size='50'>
</label>
</p>
<p>
<label> Fahrzeugmodell:
<span class='pflichtfeld'>✲ " . $Fehler["fahrzeugmo"] . "</span><br>
" . $fahrzeugmoAW . "
</label>
</p>
<p>
<label> Zielort:
<span class='pflichtfeld'>✲ " . $Fehler["zielort"] . "</span><br>
" . $zielortAW . "
</label>
</p>
<p>
Fahrzeugübernahme am:
<span class='pflichtfeld'>✲ " . $Fehler["anreise_am"] . "</span><br>
<label> " . $tagKal6 . "</label>
<label>: " . $monatKal6 . "</label>
<label>: " . $jahrKal6 . "</label>
</p>
<p>
<label> Fahrzeugübernahme in:
<span class='pflichtfeld'>✲ " . $Fehler["anreise"] . "</span><br>
" . $anreiseAW . "
</label>
</p>
<p>
Fahrzeugrückgabe am:
<span class='pflichtfeld'>✲ " . $Fehler["abreise_am"] . "</span><br>
<label> " . $tagKal8 . "</label>
<label>: " . $monatKal8 . "</label>
<label>: " . $jahrKal8 . "</label>
</p>
<p>
<label> Fahrzeugrückgabe in:
<span class='pflichtfeld'>✲ " . $Fehler["abreise"] . "</span><br>
" . $abreiseAW . "
</label>
</p>
<p>
<label> Nachricht:<br>
<small>Sie haben noch: <strong id='Zeichen10'>500</strong> Zeichen.</small><br>
<textarea name='nachricht' cols='50' rows='6' onKeyUp='CheckLen10()'>" . $nachricht . "</textarea>
</label>
</p>
<p>
<label> Sicherheitsabfrage:
<span class='pflichtfeld'>✲ " . $Fehler["sicherheit"] . "</span><br>
<em>" . $Spam . "</em> =
<input type='text' name='zip' size='4' pattern='[0-9]{1,2}' required='required' autocomplete='off'>
</label>
<input type='hidden' name='zip2' value='" . $Schutz . "'>
<br><span class='hilfetext'> Bitte lösen Sie die Rechenaufgabe. </span><br>
</p>
<p>
<br>
<a href='" . $_SERVER["SCRIPT_NAME"] . "' style='text-decoration: None;'><input type='button' value='Abbrechen'></a> -
<input type='submit' name='submit' value='Formular absenden'>
</p>
<p>
<small>Bitte alle mit <span class='pflichtfeld'>✲</span>
markierten Felder ausfüllen.</small>
</p>
</form>
<script>CheckLen10();</script>
";
// Formular abgesendet
if (isset($_POST["submit"])) {
// Sind keine Benutzer-Eingabefehler vorhanden
if (implode("", $Fehler) == "") {
// Daten als E-Mail versenden (Vorschlag) - Bitte anpassen!
// Zeitzone und das aktuelle Datum setzen
// http://de3.php.net/manual/de/timezones.europe.php
date_default_timezone_set("Europe/Berlin");
$Datum = date("d.m.Y H:i");
// Empfänger E-Mail
$Mailto = "europe@africacamperhire.de";
$betreff = "Nachricht"; // Betreff
// Inhalt der E-Mail setzen
$Text = " Gesendet am: $Datum Uhr
Name: $name
E-Mail: $email
Telefon: $telefon
Land: $land
Fahrzeugmodell: $fahrzeugmo
Zielort: $zielort
Fahrzeugübernahme am: $anreise_am
Fahrzeugübernahme in: $anreise
Fahrzeugrückgabe am: $abreise_am
Fahrzeugrückgabe in: $abreise
Nachricht: $nachricht
";
// E-Mail versenden
mb_internal_encoding("UTF-8");
$Betreff = mb_encode_mimeheader($betreff, "UTF-8", "Q");
$Kopfzeile = "MIME-Version: 1.0;\nFrom: " . mb_encode_mimeheader($name, "UTF-8", "Q") .
"<" . $email . ">" . "\nContent-Type: text/plain; Charset=UTF-8;\n";
if (mail($Mailto, $Betreff, $Text, $Kopfzeile)) {
echo "<p id='anker'>Vielen Dank, die Nachricht wurde versendet.</p>";
}
else {
// Wenn die Daten nicht versendet werden konnten,
// wird die E-Mail-Adresse für den direkten Kontakt eingeblendet.
echo "<p id='anker'>Beim Senden der Nachricht ist ein Fehler aufgetreten!<br>" .
"Bitte wenden Sie sich direkt an: <a href='mailto:" . $Mailto . "'>" . $Mailto . "</a></p>";
}
// E-Mail Kopie versenden (Vorschlag) - Bitte anpassen!
// Diese Nachricht wird automatisch an die E-Mail-Adresse des Besuchers gesendet.
// Name/Signatur
$Signatur = "Africa Camper Hire Buero Europa";
// Betreff
$Betreff = "Kopie einer Nachricht";
// Inhalt der E-Mail setzen
$Text = " Vielen Dank für Ihren Besuch bei Africa Camper Hire.
Wir haben folgende Nachricht erhalten:
Name: $name
E-Mail: $email
Telefon: $telefon
Land: $land
Fahrzeugmodell: $fahrzeugmo
Zielort: $zielort
Fahrzeugübernahme am: $anreise_am
Fahrzeugübernahme in: $anreise
Fahrzeugrückgabe am: $abreise_am
Fahrzeugrückgabe in: $abreise
Nachricht: $nachricht
Mit freundlichen Grüßen
$Signatur
";
// E-Mail Kopie versenden
$Betreff = mb_encode_mimeheader($Betreff, "UTF-8", "Q");
$Kopfzeile = "MIME-Version: 1.0;\nFrom: " . mb_encode_mimeheader($Signatur, "UTF-8", "Q") .
"<" . $Mailto . ">" . "\nContent-Type: text/plain; Charset=UTF-8;\n";
if (mail($email, $Betreff, $Text, $Kopfzeile)) {
echo "<p>Sie erhalten eine Kopie der Nachricht an Ihre E-Mail-Adresse.</p>";
}
// Automatische Weiterleitung
echo "<script>window.setTimeout('location.href=\"" . $Weiterleitung . "\"', " . $Autoweiterleitung . "*1000);</script>
<noscript><meta http-equiv='refresh' content='" . $Autoweiterleitung . "; URL=" . $Weiterleitung . "'></noscript>
<p>Automatische Weiterleitung in " . $Autoweiterleitung . " Sekunden …<br>
<a href='" . $Weiterleitung . "' target='_top'>Weiter</a></p>";
}
else {
// Formular und Benutzer-Eingabefehler ausgeben
echo $Formular;
}
}
else {
// Formular ausgeben
echo $Formular;
}
?>
preferences:
63.49 ms | 402 KiB | 5 Q