Quelltext der Datei: http://www.michaelster.ch/lernen/feedback.php

Dateigrösse: 12.46 kb

[Anzeige mit Zeilennummern]


<?php
$ok              = null;
$nr            = 100;
$wer         = '';
$email         = '';
$text         = '';
$copyText     = '';
$alert        = array('&bull; Bitte E-Mail-Adresse der Firma &uuml;berpr&uuml;fen',
                    '&bull; Bitte eigene E-Mail-Adresse &uuml;berpr&uuml;fen',
                    '&bull; Bitte Betreff &uuml;berpr&uuml;fen',
                    '&bull; Bitte Mitteilung &uuml;berpr&uuml;fen',
                    '&bull; Bitte alle erforderlichen Dokumente anh&auml;ngen',
                    '&bull; Bitte AGB best&auml;tigen',
                    '&bull; Bitte nur PDF und Word-Dateien anh&auml;ngen',
                    '&bull; Bitte Dokumente noch einmal anh&auml;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', '&nbsp;');
$tpl->setVariable('alert1', '&nbsp;');
$tpl->setVariable('alert2', '&nbsp;');
$tpl->setVariable('alert3', '&nbsp;');
$tpl->setVariable('alert4', '&nbsp;');
$tpl->setVariable('alert44', '&nbsp;');
$tpl->setVariable('alert5', '&nbsp;');

$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&ouml;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&ouml;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&ouml;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&uuml;r deine Bewerbung.</span><br><br><span style="font-size:133%">Wir melden uns in den n&auml;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']); 
?>