open("header.html");
$footer->open("footer.html");
// Content laden
$form->open('anfrage.html');
$errorMsg = array();
// Formulardaten verarbeiten und die jeweiligen Felder auswerten
if($_POST['gesendet'] == true)
{
foreach($pflichtfelder as $key => $value){
if(empty($_POST[$key])){
$form->setFormularFehler($key);
$errorMsg[$key] = $pflichtfelder[$key];
}
}
// Prüfen der Formular Eingaben
foreach($_POST as $key => $value)
{
// Soll die Sicherheitsabfrage validiert werden
if(array_key_exists("securitybox",$pflichtfelder) && $key == 'securitybox')
{
if($_SESSION['securitybox'] != $_POST['securitybox'] || empty($_POST['securitybox'])){
$form->setFormularFehler('securitybox');
$errorMsg[$key] = $pflichtfelder['securitybox'];
}
}
// Feld E-Mail Adresse prüfen
if(array_key_exists("email",$pflichtfelder) && $key == 'email')
{
if(!validateEmail($value))
{
$form->setFormularFehler($key);
$errorMsg[$key] = $pflichtfelder[$key];
}
}
// Restliche Pflichtfelder prüfen, ob diese ausgefüllt sind
if(array_key_exists($key,$pflichtfelder) && $key != 'securitybox' && $key != 'email')
{
if(empty($value))
{
$form->setFormularFehler($key);
$errorMsg[$key] = $pflichtfelder[$key];
}
}
// Restliche mindesl?ngen pr?fen
if(array_key_exists($key,$mindestLaenge))
{
if(strlen($value) < $mindestLaenge[$key]['mindestlaenge'])
{
$form->setFormularFehler($key);
$errorMsg[$key] = $mindestLaenge[$key]['fehlernachricht'];
}
}
// Restliche maximal l?ngen pr?fen
if(array_key_exists($key,$maximalLaenge))
{
if(strlen($value) > $maximalLaenge[$key]['maximallaenge'])
{
$form->setFormularFehler($key);
$errorMsg[$key] = $maximalLaenge[$key]['fehlernachricht'];
}
}
}
// Sollten Fehler bei den Formulardaten aufgetreten sein
// werden wir diese dem Benutzer ausgeben
if(count($errorMsg) > 0)
{
$errorMsg = makeHtmlList($headline,$errorMsg,'hilfstexterror');
// Falls eine Kopie dieser Nachricht gew?nscht wurde
// setzen wir die Checkbox auf aktiviert
if($_POST['emailkopie'] == true)
{
$form->makeData('emailkopie','checked="checked"');
}
// Setzen der Fehlerliste im Formular
$form->makeData('system_message',"
".$errorMsg."
");
// Eingaben die der Benutzer bereits gemacht hat
// werden an das Formular zur?ckgegeben
foreach($_POST AS $key => $value)
{
// SELECT Felder
$form->makeData("select_{$key}_{$value}", "selected=\"selected\"");
// Checkbox
$form->makeData("checkbox_{$key}_{$value}","checked=\"checked\"");
// Radio Button
$form->makeData("radio_{$key}_{$value}", "checked=\"checked\"");
$form->makeData("$key",htmlentities(stripslashes($value)));
}
}
else
{
// Erzeugen von Datum, Uhrzeit, aufrufende Adresse und IP
$_POST['ip'] = $_SERVER['REMOTE_ADDR'];
$_POST['datum'] = makeGermanDate();
$_POST['url'] = $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
// Erzeugen des E-Mail Templates f?r den Admin
$mailAdmin = new tpl();
$mailAdmin->open('anfrage_mail_admin.html');
$mailAdmin_textVersion = new tpl();
$mailAdmin_textVersion->open('anfrage_mail_admin_textVersion.html');
foreach($_POST AS $key => $value)
{
$mailAdmin->makeData($key,nl2br(htmlentities(stripslashes($value))));
$mailAdmin_textVersion->makeData($key,$value);
}
$mime_boundary = md5(time());
$mailHeader = "";
$emailContentAdmin = "";
$email = new email();
$email->eol = EOL;
$email->message_html = $mailAdmin->getData();
$email->message_text = strip_tags($mailAdmin_textVersion->getData());
$email->subject = $_POST['subject'];
$email->sender_email = $_POST['email'];
$email->nameOfSender = "{$_POST['vorname']} {$_POST['nachname']}";
$email->receiver_email = $emailOfAdmin;
$email->returnPath = $_POST['email'];
$email->charset = 'ISO-8859-1';
$content_type = "multipart/alternative";
// Auf einen m?glichen Dateianhang pr?fen
foreach($uploadFelder as $uploadName)
{
if(strlen($_FILES[$uploadName]['tmp_name']) > 0)
{
$content = file_get_contents($_FILES[$uploadName]['tmp_name']);
$email->appendAttachment($_FILES[$uploadName]['name'],$content);
$content_type = "multipart/attachment";
}
}
// Falls der Benutzer keinen Betreff angegeben hat
// wird ein Default Betreff eingesetzt
if(empty($_POST['betreff']) || $betreffUeaberschreiben)
{
$_POST['betreff'] = $betreffEmailAdmin;
}
$emailAdmin = $email->buildMail($content_type);
// E-Mail konnte aus technischen Gründen nicht gesendet werden
if(!mail($emailOfAdmin,$email->getEncodedLineString($_POST['betreff'],$charset,'b'),'',$emailAdmin)){
// Setzen der Best?tigungsseite f?r den Benutzer
$form = new tpl();
$form->open('anfrage_fehler.html');
}else{
// Wuenscht der Benutzer eine Kopie, laden wir das Template f?r Ihn
if($_POST['emailkopie'] == true && !empty($_POST['email']))
{
$mailUser = new tpl();
$mailUser->open('anfrage_mail_user.html');
$mailUser_textVersion = new tpl();
$mailUser_textVersion->open('anfrage_mail_user_textVersion.html');
foreach($_POST AS $key => $value)
{
$mailUser->makeData($key,nl2br(htmlentities(stripslashes($value))));
$mailUser_textVersion->makeData($key,$value);
}
$email = new email();
$email->eol = EOL;
$email->message_html = $mailUser->getData();
$email->message_text = strip_tags($mailUser_textVersion->getData());
$email->subject = $betreffEmailKopieAnUser;
$email->sender_email = $emailOfAdmin;
$email->nameOfSender = "";
$email->receiver_email = $_POST['email'];
//$email->returnPath = $_POST['email'];
$email->charset = $charset;
$content_type = "multipart/alternative";
$mailHeader = $email->buildMail($content_type);
@mail($_POST['email'],$email->getEncodedLineString($betreffEmailKopieAnUser,$charset,'b'),false,$mailHeader);
}
// Setzen der Best?tigungsseite f?r den Benutzer
$form = new tpl();
$form->open('anfrage_bestaetigung.html');
session_destroy();
unset($_POST);
}
}
}
// Setzen der IP Adresse des Besuchers, sowei Datum und Uhrzeit
$form->makeData('ip', $_SERVER['REMOTE_ADDR']);
$form->makeData('datum',makeGermanDate());
print $header->getData();
$form->getSize();
print $form->getData();
print $footer->getData();
?>