Hallo,
ich habe eine Kontaktseite, die das Anfrageformular enthält. Dieses Formular führt zu einer Antwortseite, die ein eigenes Template hat. In diesem Template ist im Content-Bereich folgender Code:
Code: Alles auswählen
<?PHP
// 1. Sicherheits-Stufe war der User vorher auf der kontakt.php?
if(!basename($_SERVER['PHP_SELF'])=="front_content.php?idcat=90"):
$Fehler=1;
endif;
// 2. Sicherheits-Stufe Capture Code korrekt?
$Capture[1]="1kxcb";
$Capture[2]="2bnw8";
$Capture[3]="37hjk";
$Capture[4]="4h7mx";
$Capture[5]="5tmoi";
srand();
$CaptureNr=rand(1,5);
if($Capture[$_POST['CaptureID']]!=$_POST['EingegebenerCode']):
$Fehler=1;
endif;
// 3. Sicherheits-Stufe unerlaubte Zeichen entfernen
function formvollendet($FormWert)
{
// Boesen Code entfernen
$FormWert=stripslashes($FormWert);
$FormWert=preg_replace( "/[^a-z0-9 äüöß!?:;,.\/_\-=+@#$&\*\(\)]/im", "", $FormWert);
$FormWert=preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $FormWert);
$FormWert=addslashes(htmlspecialchars($FormWert));
return $FormWert;
}
$Name=formvollendet($_POST["Name"]);
$Strasse=formvollendet($_POST["Strasse"]);
$PLZ=formvollendet($_POST["PLZ"]);
$Ort=formvollendet($_POST["Ort"]);
$EMail=formvollendet($_POST["EMail"]);
$Telefon=formvollendet($_POST["Telefon"]);
$Bemerkung=formvollendet($_POST["Bemerkung"]);
// Alle Pflichfeldergefüllt?
if (!$_POST["Name"] or !$_POST["EMail"] or !$_POST["Bemerkung"]):
$Felderleer=1;
$Fehler=1;
endif;
// Wenn alles OK, dann Mail versenden
if ($Fehler!=1 AND $Felderleer!=1):
$Empfaenger="blabla@bla.de";
$Betreff="bla bla | hier: Nachricht über Ihre Internetseite";
mail($Empfaenger,$Betreff,
"Über das Kontaktformular wurde folgende Anfrage gestellt:
---------------------------------------------------------------------------
Name: $Name
Straße: $Strasse
PLZ/Ort: $PLZ $Ort
E-Mail: $EMail
Telefon: $Telefon
Anfrage:
$Bemerkung
---------------------------------------------------------------------------
","From: \"$Name\" <$EMail>");
endif;
?>
<?PHP
// Rueckmeldung:
if ($Fehler!=1 AND $Felderleer!=1):
?>
<p>
Vielen Dank für Ihr Interesse an unserem Hause. Wir werden uns ggf. umgehend bei Ihnen melden.
<br><br>
Mit freundlichen Grüßen<br>
Blabla
<br><br>
» <a href="front_content.php">zur Startseite</a><br>
</p>
<?PHP else:?>
<p><span class="fehler">Leider sind Fehler aufgetreten...</span><br><br>
... und Ihre Anfrage konnte nicht übermittelt werden.</p>
<p>Bitte achten Sie auf die korrekte Eingabe des Codes bei der Spamschutz/Sicherheitsabfrage.</p>
<?PHP if($Felderleer==1):?>
<p>Bitte beachten Sie, dass <b>alle Felder mit einem »<span class="star">*</span>«</b> ausgefüllt sein müssen.</p>
<?PHP endif;?>
<p>» <a href="javascript:history.back()" title="zurück zum Kontaktformular">zurück zum Kontaktformular</a><br></p>
<?PHP endif;?></p>
Hier ist wichtig zu erwähnen, dass das Formular an sich funktioniert. Das heißt z.B., dass der Sicherheitscode funktioniert und die Pflichtfelder korrekt abgefragt werden. Wenn man also nicht alle Felder ausfülllt, kommt die Meldung, dass man alle Felder ausfüllen muss. Wenn man alle Felder ausgefüllt hat und der Sicherheitscode stimmt, kommt der "Vielen Dank ..."-Satz. Allerdings wird die E-Mail irgendwie nicht versendet, obwohl ich die richtige eingegeben habe.