Bitte geben Sie einen Wert in das Feld Name* ein!";
$bFormOK = false;
}
if ($_POST["Vorname"] == "")
{
$errVorname = "Bitte geben Sie einen Wert in das Feld Vorname* ein!";
$bFormOK = false;
}
if ($_POST["email"] == "")
{
$erremail = "Bitte geben Sie einen Wert in das Feld E-Mail* ein!";
$bFormOK = false;
}
if ($_POST["Bemerkung"] == "")
{
$errBemerkung = "Bitte geben Sie einen Wert in das Feld Bemerkung* ein!";
$bFormOK = false;
}
if ($_POST["captcha_input"] != $_SESSION["captcha"])
{
$errCaptcha = "Fehler, bitte übertragen Sie die Zahl aus dem Bild!";
$bFormOK = false;
}
if ($bFormOK == true) sendMail();
}
//Funktionsteil
function CryptString($str)
{
for ($i=0;$i<=strlen($str)-1;$i++)
{
$str[$i] = chr(23 ^ ord($str[$i]));
}
return $str;
}
function Captcha()
{
$c_captcha_breite = 80; //größe Captcha Bild
$c_captcha_hoehe = 25;
$c_captcha_groesse = 15; //Schriftgröße Captcha
Header("Content-Disposition: filename=\"captcha.png\"\r\n");
Header("Content-type: image/png");
//Bild erzeugen
$im = imagecreate($c_captcha_breite,$c_captcha_hoehe);
//Farbe und Schriftart
$captcha_color = imagecolorallocate($im,44,44,44);
$captcha_bg_color = imagecolorallocate($im,150,150,150);
$captcha_stoer_color = imagecolorallocate($im,100,100,100);
imagefill($im,0,0,$captcha_bg_color);
srand ((double)microtime()*1000000);
//Störmuster einbringen
for ($x = 0;$x<=$c_captcha_breite;$x++)
for ($y = 0;$y<=$c_captcha_hoehe;$y++)
{
$curRand = rand(0,3);
if ($curRand == 1) imagesetpixel($im,$x,$y,$captcha_stoer_color);
}
imagestring($im,5,15,5,$_SESSION["captcha"],$captcha_color);
ImagePng($im);
}
function CleanXML($str)
{
$str = str_replace("&","&",$str);
$str = str_replace("<","<",$str);
$str = str_replace(">",">",$str);
$str = stripslashes($str);
return $str;
}
function sendMail()
{
//Textmail-Template
$messageText='*Formular-Weiterleitungs-Service*
-----------------------------------------------------------------';
//HTML-Template
$messageHTML = '
Formular
| |
#SUBJECT#
|
Weitere Informationen:
|
Datum: |
#DATE# |
|
IP-Adresse: |
#IP# |
|
User-Agent: |
#UA# |
|
|
';
$sender = $_POST["email"];
$subj = $_POST["subject"];
$type = $_POST["typemail"];
$strEinleitText = CryptString(base64_decode($_POST["einleittext"]));
$strFormID = $_POST["formid"];
$strSettings = CryptString(base64_decode($_POST["settings"]));
$returnSender = $_POST["ReturnToSender"];
$redir = $_POST["redirect"];
//E-Mail-Adressen auslesen
if ($_POST["crypt"] == "1")
{
$rec1 = CryptString(base64_decode(stripslashes($_POST["admin"])));
$rec2 = CryptString(base64_decode(stripslashes($_POST["admin1"])));
$rec3 = CryptString(base64_decode(stripslashes($_POST["admin2"])));
}
else
{
$rec1 = $_POST["admin"];
$rec2 = $_POST["admin1"];
$rec3 = $_POST["admin2"];
}
$textmail = true;
if ($type == "plain" || $type == "")
{
$message= $messageText;
$message.= "\n\n";
$message.= str_replace("#br#", "\n", $strEinleitText);
$message.= "\n\n";
foreach($_POST as $name=> $value)
{
$str = stripslashes($value);
if (($name != "redirect") AND ($name != "einleittext") AND ($name != "probe") AND ($name != "crypt") AND ($name != "ReturnToSender") AND ($name != "next") AND ($name != "typemail") AND ($name != "admin") AND ($name != "admin1") AND ($name != "admin2") AND ($name != "subject") AND ($name != "captcha_input") AND ($name != "formid") AND ($name != "settings"))
{
$message.= "$name: $str\n\n";
}
}
//Anhängen der IP, Browser und Datum
$message.= "-----------------------------\n";
$message.= date("l dS of F Y h:i:s A") . "\n";
$message.= $_SERVER['REMOTE_ADDR'] . "\n";
$message.= $_SERVER['HTTP_USER_AGENT'];
//Replace Operationen
$message = str_replace("#SUBJECT#", $subj, $message);
$textmail = true;
}
if ($type == "html")
{
$inHtml= "";
$message= $messageHTML;
foreach($_POST as $name=> $value)
{
$str = stripslashes($value);
if (($name != "redirect") AND ($name != "einleittext") AND ($name != "probe") AND ($name != "crypt") AND ($name != "ReturnToSender") AND ($name != "next") AND ($name != "typemail") AND ($name != "admin") AND ($name != "admin1") AND ($name != "admin2") AND ($name != "subject") AND ($name != "captcha_input") AND ($name != "formid") AND ($name != "settings"))
{
" $str\n\n";
$inHtml.= "\n";
$inHtml.= "" . $name . ": | \n";
$inHtml.= "" . $str . " |
\n";
}
}
$inHtml.= "
";
//Anhängen der IP, Browser und Datum
$datum = date("l dS of F Y h:i:s A") . "\n";
$ip = $_SERVER['REMOTE_ADDR'] . "\n";
$ua = $_SERVER['HTTP_USER_AGENT'];
//replace Operationen
$message = str_replace("#EINLEITTEXT#", str_replace("#br#", "
", $strEinleitText), $message);
$message = str_replace("#PLACEHOLDER#", $inHtml, $message);
$message = str_replace("#DATE#", $datum, $message);
$message = str_replace("#IP#", $ip, $message);
$message = str_replace("#UA#", $ua, $message);
$message = str_replace("#SUBJECT#", $subj, $message);
$textmail = false;
}
if ($type == "xml")
{
$message = "\n\n";
$message .= "\n";
$message .= " \n";
foreach($_POST as $name=> $value)
{
$str = CleanXML($value);
if (($name != "redirect") AND ($name != "einleittext") AND ($name != "probe") AND ($name != "crypt") AND ($name != "ReturnToSender") AND ($name != "next") AND ($name != "typemail") AND ($name != "admin") AND ($name != "admin1") AND ($name != "admin2") AND ($name != "subject") AND ($name != "captcha_input") AND ($name != "formid") AND ($name != "settings"))
{
$message .= " <" . $name . ">" . $str . "" . $name .">\n";
}
}
//Anhängen der IP, Browser und Datum
$message .= " " . date("l dS of F Y h:i:s A") . "\n";
$message .= " " . $_SERVER['REMOTE_ADDR'] . "\n";
$message .= " " . $_SERVER['HTTP_USER_AGENT'] . "\n";
$message .= " \n";
$message .= "";
$textmail = true;
}
//Anhang
$anhang = false;
if (isset($_FILES['probe']) and !$_FILES['probe']['error'] and ($_FILES['probe']['name'] != '.htaccess'))
{
move_uploaded_file($_FILES['probe']['tmp_name'], "filetemp/" . $_FILES['probe']['name']);
$anhang = true;
}
$mail = new sendmail();
$mail->from($sender);
$mail->to($rec1);
$mail->subject($subj);
$mail->text($message,$textmail,$anhang);
if ($anhang == true) $mail->attachment("filetemp/" . $_FILES['probe']['name']);
$mail->send();
if ($rec2 != "")
{
$mail2 = new sendmail();
$mail2->from($sender);
$mail2->to($rec2);
$mail2->subject($subj);
$mail2->text($message,$textmail,$anhang);
if ($anhang == true) $mail2->attachment("filetemp/" . $_FILES['probe']['name']);
$mail2->send();
}
if ($rec3 != "")
{
$mail3 = new sendmail();
$mail3->from($sender);
$mail3->to($rec3);
$mail3->subject($subj);
$mail3->text($message,$textmail,$anhang);
if ($anhang == true) $mail3->attachment("filetemp/" . $_FILES['probe']['name']);
$mail3->send();
}
if ($returnSender == "-1")
{
$mail4 = new sendmail();
$mail4->from($rec1);
$mail4->to($sender);
$mail4->subject($subj . " - Kopie");
$mail4->text($message,$textmail,$anhang);
$mail4->send();
}
if ($anhang == true) @unlink("filetemp/" . $_FILES['probe']['name']);
header("Location:" . $redir);
}
class sendmail
{
// Variable deklarieren
var $emailheader = "";
var $emailheader2 = "";
var $textheader = "";
var $textboundary = "";
var $emailboundary = "";
var $betreff = "";
var $empfaenger = "";
var $attachment = array();
function sendmail()
{
$this->textboundary = uniqid(time());
$this->emailboundary = uniqid(time());
}
// Von wem die Email kommt in den Header setzen
function from($name)
{
$this->emailheader .= "From: $name\n";
$this->emailheader .= "MIME-Version: 1.0\n";
}
// Funktion um den Adressaten anzugeben
function to($to)
{
$this->empfaenger = $to;
}
// Funktionn für den Betreff anzugeben
function subject($subject)
{
$this->betreff = $subject;
}
// Textdaten in Email Header packen
function text($text,$textmail,$anhang)
{
if ($textmail == false)
{
$this->emailheader2 .= "Content-Type: multipart/alternative; boundary=\"$this->textboundary\"\n";
$this->textheader .= "--$this->textboundary\n";
$this->textheader .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
$this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n";
$this->textheader .= strip_tags($text)."\n\n";
$this->textheader .= "--$this->textboundary\n";
$this->textheader .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n";
$this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n";
$this->textheader .= "$text\n\n";
$this->textheader .= "--$this->textboundary--\n\n";
}
else
{
if ($anhang == true)
{
$this->emailheader2 .= "Content-Type: multipart/alternative; boundary=\"$this->textboundary\"\n";
$this->textheader .= "--$this->textboundary\n";
$this->textheader .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n";
$this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n";
}
$this->textheader .= $text . "\n\n";
if ($anhang == true)
{
$this->textheader .= "--$this->textboundary--\n\n";
}
}
}
// Funktion zum anhängen für Attachments in der Email
function attachment($datei)
{
// Überprüfen ob File Existiert
if(is_file($datei))
{
// Header für Attachment erzeugen
$filename = str_replace("filetemp/", "", $datei);
$attachment_header = "--".$this->emailboundary."\n" ;
$attachment_header .= "Content-Type: application/octet-stream;\n name=\"$datei\"\n";
$attachment_header .= "Content-Transfer-Encoding: base64\n";
$attachment_header .= "Content-Disposition: attachment;\n filename=\"$filename\"\n\n";
// Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile
// aufteilen
$file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei));
$file['inhalt'] = base64_encode($file['inhalt']);
$file['inhalt'] = chunk_split($file['inhalt'],72);
// Attachment mit Header in der Klassenvariable speichern
$this->attachment[] = $attachment_header.$file['inhalt']."\n";
}
}
// Funktion zum erstellen des Kompletten Headers der Email
// Senden der Email
function send()
{
$header = $this->emailheader;
$body = "";
// Überprüfen ob Attachments angehängt wurden
if(count($this->attachment)>0)
{
$header .= "Content-Type: multipart/mixed; boundary=\"$this->emailboundary\"\n";
$body .= "--$this->emailboundary\n";
$body .= $this->emailheader2 . "\n";
$body .= $this->textheader;
for($i=0;$iattachment);$i++)
{
$body .= $this->attachment[$i];
}
$body .= "--$this->emailboundary--";
}
else
{
$header .= $this->emailheader2;
$body .= $this->textheader;
}
// Versenden der Mail
mail("$this->empfaenger",$this->betreff,$body,$header);
}
}
?>
Kontaktformular