1
Hallo Forum,
ich habe Euch auf der Suche nach einer Lösung für mein Problem gefunden und hoffe dass mir jemand auf die Sprünge helfen kann.
Ich betreibe mehrere Internetseiten und auf allen gibt es ein Kontakformular. Zwei Seiten sind in html aufgesetzt, eine Unterseite mit dem Kontaktformular als php. Funktioniert alles einwandfrei.
Jetzt habe ich eine Seite umgestaltet und vereinfacht, das Kontaktformular ist jetzt Teil der Startseite. Es wird auch angezeigt und nach Absenden der Daten landet man beim gesetzten Formularanker, nur die Mail geht nicht raus. Kann mal jemand auf den php Teil schauen und mir sagen wo der Fehler stecken kann, ich sehe den Wald vor lauter Bäumen nicht mehr....
Ach so, das Formular habe ich bei "Webbausteine" erstellt und die Daten des PHPMailer liegen im richtigen Verzeichnis.
Danke im voraus. Hier der Code:
Der Ratlose....
ich habe Euch auf der Suche nach einer Lösung für mein Problem gefunden und hoffe dass mir jemand auf die Sprünge helfen kann.
Ich betreibe mehrere Internetseiten und auf allen gibt es ein Kontakformular. Zwei Seiten sind in html aufgesetzt, eine Unterseite mit dem Kontaktformular als php. Funktioniert alles einwandfrei.
Jetzt habe ich eine Seite umgestaltet und vereinfacht, das Kontaktformular ist jetzt Teil der Startseite. Es wird auch angezeigt und nach Absenden der Daten landet man beim gesetzten Formularanker, nur die Mail geht nicht raus. Kann mal jemand auf den php Teil schauen und mir sagen wo der Fehler stecken kann, ich sehe den Wald vor lauter Bäumen nicht mehr....
Ach so, das Formular habe ich bei "Webbausteine" erstellt und die Daten des PHPMailer liegen im richtigen Verzeichnis.
Danke im voraus. Hier der Code:
<?php
// 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";
// PHPMailer - Download unter:
// https://github.com/PHPMailer/PHPMailer (Button: "Download ZIP").
// Das entpackte Verzeichnis: "PHPMailer-master" als Unterverzeichnis
// einfügen indem dieses Kontaktformular liegt.
// PHPMailer einbinden, Instanz und Zeichenkodierung setzen.
require "PHPMailer-master/PHPMailerAutoload.php";
$Mailer = new PHPMailer();
$Mailer->CharSet = "UTF-8";
$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
$fahrzeugmodell = isset($_POST["fahrzeugmodell"]) ? $_POST["fahrzeugmodell"] : ""; // Fahrzeugmodell
// Auswahlliste: Fahrzeugmodell
$array = 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",
);
$fahrzeugmodellAW = "<select name='fahrzeugmodell' size='1' required='required'>";
foreach ($array as $value) {
$fahrzeugmodellAW .= "\n <option value='" . $value . "'" .
((isset($_POST["fahrzeugmodell"]) ? $_POST["fahrzeugmodell"] : "") == $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$fahrzeugmodellAW .= "\n </select>";
$zielort = isset($_POST["zielort"]) ? implode(", ", $_POST["zielort"]) : ""; // Welche Länder möchten Sie bereisen?
// Mehrfachauswahlliste: Welche Länder möchten Sie bereisen?
$array = array (
"Südafrika", "Namibia", "Botswana", "Zimbabwe",
"Samiba", "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: Anreise 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: Anreise am (Monat)
// Bestimmte Monate auswählen z.B.: $Monate = array(3, 6, 9, 12);
$Monate = range(1, 12); // Start, Ende
array_unshift($Monate, "1");
$Monatsname = array (1=>"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
array_unshift($Monatsname, "-");
$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: Anreise 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 ";
$anreisedatum = $Tag6 . "." . $Monat6 . "." . $Jahr6; // Datumsformat hier ggf. anpassen!
$fahrzeuguebernahme = isset($_POST["fahrzeuguebernahme"]) ? $_POST["fahrzeuguebernahme"] : ""; // Fahrzeugübernahme in
// Auswahlliste: Fahrzeugübernahme in
$array = array (
"Johannesburg",
"Kapstadt",
"Windhoek",
"Victoria Falls",
"anderer Ort bitte angeben",
);
$fahrzeuguebernahmeAW = "<select name='fahrzeuguebernahme' size='1' required='required'>";
foreach ($array as $value) {
$fahrzeuguebernahmeAW .= "\n <option value='" . $value . "'" .
((isset($_POST["fahrzeuguebernahme"]) ? $_POST["fahrzeuguebernahme"] : "") == $value ?
" selected='selected'" : "") . ">" . $value . "</option>";
}
$fahrzeuguebernahmeAW .= "\n </select>";
// Auswahlliste: Rückreise 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: Rückreise am (Monat)
// Bestimmte Monate auswählen z.B.: $Monate = array(3, 6, 9, 12);
$Monate = range(1, 12); // Start, Ende
array_unshift($Monate, "1");
$Monatsname = array (1=>"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
array_unshift($Monatsname, "-");
$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: Rückreise 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");
$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 ";
$abreisedatum = $Tag8 . "." . $Monat8 . "." . $Jahr8; // Datumsformat hier ggf. anpassen!
$abreise = isset($_POST["abreise"]) ? $_POST["abreise"] : ""; // Fahrzeugrückgabe in
// Auswahlliste: Fahrzeugrückgabe in
$array = array (
"", "Johannesburg", "Kapstadt", "Windhoek", "Victoria Falls",
"anderer Ort bitte angeben", );
$abreiseAW = "<select name='abreise' size='1'>";
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
// Benutzereingaben überprüfen
// Die Meldungen müssen hier eventuell angepasst werden.
$Fehler = array ("name"=>"", "email"=>"", "fahrzeugmodell"=>"",
"zielort"=>"", "anreisedatum"=>"", "anreisedatum"=>"", "fahrzeuguebernahme"=>"", "abreisedatum"=>"", "abreisedatum"=>"", "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["fahrzeugmodell"] = $fahrzeugmodell == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
$Fehler["zielort"] = $zielort == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
$Fehler["anreisedatum"] = !checkdate($_POST["Monat6"], $_POST["Tag6"], $_POST["Jahr6"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
$Fehler["fahrzeuguebernahme"] = $fahrzeuguebernahme == "" ? " Bitte wählen Sie einen Eintrag aus!" : "";
$Fehler["abreisedatum"] = !checkdate($_POST["Monat8"], $_POST["Tag8"], $_POST["Jahr8"]) ? " Wählen Sie ein (gültiges) Datum aus!" : "";
$Fehler["sicherheit"] = (md5($_POST["zip"]) != $_POST["zip2"]) ? "Die Rechenaufgabe ist leider falsch!" : "";
}
// Sicherheitsabfrage - Rechenaufgabe
$Z0 = array (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["fahrzeugmodell"] . "</span><br>
" . $fahrzeugmodellAW . "
</label>
</p>
<p>
<label> Welche Länder möchten Sie bereisen?:
<span class='pflichtfeld'>✲ " . $Fehler["zielort"] . "</span><br>
" . $zielortAW . "
</label>
</p>
<p>
Anreise am:
<span class='pflichtfeld'>✲ " . $Fehler["anreisedatum"] . "</span><br>
<label> " . $tagKal6 . "</label>
<label>: " . $monatKal6 . "</label>
<label>: " . $jahrKal6 . "</label>
</p>
<p>
<label> Fahrzeugübernahme in:
<span class='pflichtfeld'>✲ " . $Fehler["fahrzeuguebernahme"] . "</span><br>
" . $fahrzeuguebernahmeAW . "
</label>
</p>
<p>
Rückreise am:
<span class='pflichtfeld'>✲ " . $Fehler["abreisedatum"] . "</span><br>
<label> " . $tagKal8 . "</label>
<label>: " . $monatKal8 . "</label>
<label>: " . $jahrKal8 . "</label>
</p>
<p>
<label> Fahrzeugrückgabe in: <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='8' 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 mit dem PHPMailer versenden (Vorschlag) - Bitte anpassen!
// E-Mail Absender
$Mailer->setFrom($email, $name);
// E-Mail Empfänger
$Mailer->addAddress("europe@africacamperhire.de", "Africa Camper Hire");
// Betreff der E-Mail
$Mailer->Subject = "Anfrage für Africa Camper Hire";
// Die 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");
// Inhalt der E-Mail setzen
$Text = " Gesendet am: $Datum Uhr
Name: $name
E-Mail: $email
Telefon: $telefon
Land: $land
Fahrzeugmodell: $fahrzeugmodell
Welche Länder möchten Sie bereisen?: $zielort
Anreise am: $anreisedatum
Fahrzeugübernahme in: $fahrzeuguebernahme
Rückreise am: $abreisedatum
Fahrzeugrückgabe in: $abreise
Nachricht: $nachricht
";
$Mailer->Body = $Text;
// E-Mail senden und überprüfen ob diese richtig versandt wurde.
if ($Mailer->Send()) {
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>";
}
// Weiterleitung
echo "<p><a href='" . $Weiterleitung . "'>Weiter</a></p>";
}
else {
// Formular und Benutzer-Eingabefehler ausgeben
echo $Formular;
}
}
else {
// Formular ausgeben
echo $Formular;
}
?>
Der Ratlose....