Dateigrösse: 12.46 kb
1<?php $ok = null; $nr = 100; $wer = ''; $email = ''; $text = ''; $copyText = ''; $alert = array('• Bitte E-Mail-Adresse der Firma überprüfen', '• Bitte eigene E-Mail-Adresse überprüfen', '• Bitte Betreff überprüfen', '• Bitte Mitteilung überprüfen', '• Bitte alle erforderlichen Dokumente anhängen', '• Bitte AGB bestätigen', '• Bitte nur PDF und Word-Dateien anhängen', '• Bitte Dokumente noch einmal anhängen' ); $allowed_attach = array( 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.oasis.opendocument.text' ); $checkEmail = true; $red_bg = false; //$inline = 'block'; $tpl->setVariable('style', 'style="display:block;"'); $tpl->setVariable('bool0', 'hidden'); $tpl->setVariable('bool1', 'hidden'); $tpl->setVariable('bool2', 'hidden'); $tpl->setVariable('bool3', 'hidden'); $tpl->setVariable('bool4', 'hidden'); $tpl->setVariable('bool44', 'hidden'); $tpl->setVariable('bool5', 'none'); $tpl->setVariable('alert0', ' '); $tpl->setVariable('alert1', ' '); $tpl->setVariable('alert2', ' '); $tpl->setVariable('alert3', ' '); $tpl->setVariable('alert4', ' '); $tpl->setVariable('alert44', ' '); $tpl->setVariable('alert5', ' '); $tpl->setVariable('alert55', ''); $tpl->setVariable('alert66', ''); /* */ // Deutschsprachige Umgebung, damit regulaere Ausdruecke (regex) auch Umlaute erkennen setlocale(LC_ALL, 'de_CH'); // Erzeuge einen zufaellig aussehenden Zugangscode aus dem Datum ... $code = chr((date("y") + 7) % 10 + date("m") + 68 + (date("m") % 2) * 32) . chr((date("d") + (date("d") %2)) / 2 + 66 + (37 * (date("d") %2))); // ... den der Anwender mittels verborgenem Eingabefeld uebergibt. // So laesst sich das Gros der Skript gesteuerten Angriffe von vornherein abblocken. if ( isset($_POST['ok']) ) { if(!isset($_POST['code']) || $_POST['code'] != $code) die ('<div style="margin:2em; font-size:12pt; font-weight:bold;"><p>Mailcode fehlt!</p><br><p><a style="color:#cc0033;" href="#" onclick="self.location=\'index.php?kap=bewerbung&navid=6\';">back</a></p></div>'); $ok = true; $anhang = array(); //print_r($_POST); $data = array_map('_filterData', $_POST); //print_r($data); $wer = "msteiner2015@bluewin.ch"; //$data['wer']; $email = $data['email']; $betreff = $data['subject']; $text = $data['text']; $copy = isset($data['copy2me']); $anhang = $_FILES['attach']; $anhang0 = $anhang['name'][0].$anhang['type'][0].$anhang['tmp_name'][0].$anhang['error'][0].$anhang['size'][0]; /* foreach($anhang as $key => $value) { echo $key .' => '. count($value); print_r($value); echo '<br>'; foreach($value as $k => $v) { echo $k .' => '. $v; echo '<br>'; } } */ $agb = isset($data['agb']); //print_r($anhang); //$anhang['name']['type']['tmp_name']['error']['size']; //echo $anhang['error'][0]; //echo $anhang['error'][1]; //echo $anhang['error'][2]; //echo $anhang['error'][3]; /* */ if($agb!=true) { $ok = false; $nr = 5; } // $anhang['type'] != 'application/pdf' ... if(!in_array($anhang['type'][0], $allowed_attach) || !in_array($anhang['type'][1], $allowed_attach)) { $ok = false; $nr = 44; $red_bg = true; } // $anhang['error'] 0=Ja->OK!, 4=No->KO! if($anhang['error'][0] !=0 || $anhang['error'][1] !=0) { $ok = false; $nr = 4; $red_bg = true; } if(strlen($text) <= 5) { $ok = false; $nr = 3; $red_bg = false; } if(strlen($betreff) < 8) { $ok = false; $nr = 2; $red_bg = false; } if($checkEmail && !checkEmail($email, true)) { $ok = false; $nr = 1; $red_bg = false; } if($checkEmail && !checkEmail($wer, true)) { $ok = false; $nr = 0; $red_bg = false; } } if($ok) { if (strtoupper(substr(PHP_OS,0,3)=='WIN')) { $eol = "\r\n"; } elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) { $eol = "\r"; } else { $eol = "\n"; } $zeit1 = date('d.m.Y'); $zeit2 = date('H:i') . ' Uhr:'; $msgHead = '<span style="color: #000;">'. $email .' schrieb am '. $zeit1 .' um '. $zeit2 .'</span>'. $eol.$eol; $msgText = utf8_decode($text); $msgText = $msgText . $eol.$eol; $msgMail = $email . $eol.$eol; $toName = "Michaelis"; //$to = "mistone@protonmail.com"; $to = "msteiner2015@bluewin.ch"; //$fromName = "Contact-Formular"; //$from = "no-reply@localhost"; $fromName = $wer; $from = $email; $subject = utf8_decode($betreff); // "Bewerbungsformular" $body = $msgText; //$msgHead.$msgText; /******** version 2.5 ********/ require_once 'js/html_mime_mail_2.5/htmlMimeMail.php'; $mail = new htmlMimeMail(); $mail->setFrom($from .' <'. $from .'>'); $mail->setSubject($subject); $add = ''; //'<b>---------------------------</b><br />'; $mail->setHtml($add . $body); $msgAttach = ''; $filename = array(); $anlagen = 0; $pre = ''; $allowed_mimetypes = array( 'image/gif', 'image/png', 'image/jpg', 'image/jpeg', 'application/pdf', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.oasis.opendocument.text', 'text/plain' ); for($i=0; $i < count($anhang); $i++) { if(is_uploaded_file($anhang['tmp_name'][$i])) { foreach($anhang as $key => $val) { $pre .= $key.' => '.$val[$i]; $pre .= '<br />'; } if(in_array($anhang['type'][$i], $allowed_mimetypes)) { if($attach[$i] = $mail->getFile($anhang['tmp_name'][$i])) { $mail->addAttachment($attach[$i], utf8_encode($anhang['name'][$i]), $anhang['type'][$i]); //$filename[$anhang['type'][$i]][] = $anhang['name'][$i]; $filename[$anhang['type'][$i]][] = '<span title="'. $anhang['type'][$i] .'">'. $anhang['name'][$i] .'</span>'; $anlagen = 1; } else { $anlagen = 2; } } else { //echo $anhang['type'][$i].'<br>'; $anlagen = 3; $filename[$anhang['type'][$i]][] = '<span style="color:red;" title="'. $anhang['type'][$i] .'">'. $anhang['name'][$i] .' wurde gelöscht!</span>'; // - - unset($anhang[$i]); } } } $mail->send(array($toName .' <'. $to .'>')); if($copy) { $mail->send(array($fromName .' <'. $from .'>')); $copyText = '<br><h4>Eine Kopie wurde an '. $from .' gesendet.</h4>'; $copyText .= '<div style="width:77%; padding:0.5em 0 1em 0; margin:0px auto; border-top:1pt dashed black; text-align:center;"></div>'; } else { $copyText .= '<br><br><div style="width:66%; padding:0.5em 0 1em 0; margin:0px auto; border-top:1pt dashed black; text-align:center;"></div>'; } $msgAttach = '<br><div style="width:55%; padding:0.5em 0 1em 0; margin:0px auto; border-top:1pt dashed black; text-align:center;"></div>'; $ctr = 0; if($anlagen==1 || $anlagen==3) { $clip = '<img style="margin:0 10px -3px 0;" src="../img/paperclip.gif" alt="Attachment" width="15" height="15" border="0" />'; $alarm = '<img style="margin:0 10px -3px 0;" src="../img/icon_alarm.gif" alt="Alarm" width="15" height="14" border="0" />'; $error = '<img style="margin:0 8px -3px 0;" src="../img/icon_error.png" alt="Error" width="16" height="16" border="0" />'; $img = '<img style="margin:0 10px -2px 0;" src="../img/icon_image.gif" alt="Bild" width="16" height="16" border="0" />'; $pdf = '<img style="margin:0 10px -2px 0;" src="../img/icon_pdf.gif" alt="PDF" width="16" height="16" border="0" />'; $odt = '<img style="margin:0 10px -2px 0;" src="../img/icon_odt_16x14.png" alt="ODT" width="14" height="16" border="0" />'; //$odt = '<img style="margin:0 10px -2px 0;" src="../img/icon-odt-16x16.gif" alt="ODT" width="16" height="16" border="0" />'; $doc = '<img style="margin:0 10px -3px 0;" src="../img/icon-word-2010_16x16.png" alt="DOC" width="16" height="16" border="0" />'; $doc = '<img style="margin:0 10px -2px 0;" src="../img/icon_word.gif" alt="DOC" width="16" height="16" border="0" />'; $docx = '<img style="margin:0 10px -3px 0;" src="../img/icon_docx.gif" alt="DOCX" width="16" height="16" border="0" />'; $docx = '<img style="margin:0 10px -4px 0;" src="../img/icon-word-18x18.gif" alt="DOCX" width="18" height="18" border="0" />'; $i=0; foreach($filename as $key => $value) { foreach($value as $k => $v) { $icon = stristr($v, 'wurde gelöscht!') ? $error : $clip; if($icon==$clip) { $ctr++; if($anhang['type'][$i]=='application/pdf') { $icon = $pdf; } elseif($anhang['type'][$i]=='application/vnd.oasis.opendocument.text') { $icon = $odt; } elseif($anhang['type'][$i]=='image/gif' || $anhang['type'][$i]=='image/png' || $anhang['type'][$i]=='image/jpg' || $anhang['type'][$i]=='image/jpeg') { $icon = $img; } elseif($anhang['type'][$i]=='application/msword') { $icon = $doc; } else { $icon = $docx; } } $i++; $title = stristr($v, 'wurde gelöscht!') ? 'Sorry, falscher Dateityp' : 'Anhang '. $ctr; $msgAttach .= '<span title="'. $title .'">'. $icon .'</span><span style="color:#454545;" title="OOPS">'. $v .'</span>'; $msgAttach .= '<p style="padding:0.25em; margin:0; border:0pt dotted #454545;"></p>'; } } //$msgAttach .= $pre; $msgAttach .= '<div style="width:33%; padding:0.5em 0; margin:0px auto; border-bottom:1pt dashed black; text-align:center;"></div>'; } if($anlagen==2) { $msgHead = '<span style="color:red;">Fehler beim Anhang</span>'; $msgText = 'an error occured while reading attachment(s)!'; } $meldung = '<div style="text-align:center !important; width:45em !important; color:#228b22 !important; background:transparent; margin:1em 0; padding:2em 2em 1em 2em; border:1pt solid #454545; border-radius:20px; box-shadow:3pt 3pt 6pt #228b22; line-height:22px; letter-spacing:1px;"><span style="font-size:155%">Vielen Dank für deine Bewerbung.</span><br><br><span style="font-size:133%">Wir melden uns in den nächsten Tagen bei dir.</span>'.$copyText.'<p style="margin:0;padding:0;height:10px;"></p>' . $msgHead . '<br><div style="font-size:10pt; color:#353535; margin:10pt 0;"><div style="width:80%;margin:0 auto;">' . nl2br($text) . '</div> '. $msgAttach .'<br><a href="' . $_SERVER['PHP_SELF'] . '?kap=' . $_GET['kap'] . '&navid=' . $_GET['navid'] . '" class="notable" style="font-size:9pt;">weiter</a></div></div>'; $tpl->setVariable('style', 'style="display:none;"'); $tpl->setVariable('meldung', $meldung); } else { $tpl->setCurrentBlock('formular'); $tpl->setVariable('action', $_SERVER['PHP_SELF'].'?kap='.$_GET['kap'].'&navid='.$_GET['navid']); $tpl->setVariable('wer', _filterData($_POST['wer'])); $tpl->setVariable('email', _filterData($_POST['email'])); $tpl->setVariable('betreff', _filterData($_POST['subject'])); $tpl->setVariable('text', _filterData($_POST['text'])); $check = $copy ? 'checked="checked"' : ''; $tpl->setVariable('checked', $check); $checkAGB = $agb ? 'checked="checked"' : ''; $tpl->setVariable('checkedAGB', $checkAGB); $tpl->setVariable('code', $code); if($nr<=3) { $tpl->setVariable('autofocus1', ''); $tpl->setVariable('autofocus'.$nr, 'autofocus'); $tpl->setVariable('bg'.$nr, 'background-color:#ffb8b8; border-color:#666;'); } if($nr>3 && $nr<100) { $tpl->setVariable('autofocus1', ''); $tpl->setVariable('autofocus2', ''); $tpl->setVariable('autofocus3', ''); } if($nr<9) { $tpl->setVariable('bool'.$nr, 'visible'); $tpl->setVariable('alert'.$nr, $alert[$nr]); } if($nr==44) { $tpl->setVariable('bool'.$nr, 'visible'); $tpl->setVariable('alert'.$nr, $alert[6]); } if($red_bg) { $tpl->setVariable('alert55', 'background-color:#ffb8b8;'); $tpl->setVariable('alert66', 'background-color:#ffb8b8;'); } $tpl->parseCurrentBlock(); } //$_SESSION['attach'] = $_SESSION['attach']['size'][0]==$anhang['size'][0]?$_SESSION['attach']:$_FILES['attach']; //unset($_SESSION['attach']); ?>