ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Antispam Modul

Geschlossen
  1. #1
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Hiho, gibt es eine Möglichkeit das Antispam Modul mit eigenen Bildern zu ändern oder gibt es ein anderes Antispam Modul. Aber auf keinen Fall das von Google, das ist viel zu groß und stockhässlich. Und bevor da jemand was erkennen kann vergeht ne Stunde.

    Danke euch


    verwendete ilchClan Version: 1.1 N

    betroffene Homepage: externer Link
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.629
    Beitragswertungen
    1192 Beitragspunkte
    Du kannst die Zahlenbilder im Ordner include/images/spam/ verschönern oder ein Update auf Version P machen und das neue Spamsystem verwenden. Dieses ist optisch anpassbar.
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Ich werds die Tage mal versuchen mit dem Update. Ich hab so viel modifiziert, ich glaub das wid ne üble Sache mit Updaten lächeln
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ZitatZitat geschrieben von Zeisig

    Ich werds die Tage mal versuchen mit dem Update. Ich hab so viel modifiziert, ich glaub das wid ne üble Sache mit Updaten lächeln


    jop das vermute ich auch zunge

    vorher aufjedenfall datenbank backup und file-system backup durchführen ... oder die webseite spiegeln wäre vielleicht noch eine gute fallback möglichkeit
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Sodele liebes Hölzchen,
    das freut mich ja das du wieder wohl behalten aus dem Urlaub bist.

    Hab letztens versucht meine Seite auf Update P zu machen aber kann ich ganz schnell vergessen. Da ging danach gar nichts mehr. Ich hab soviele Mods damals eingebaut und Seiten modifiziert, daß mir der Aufwand zu groß ist und bei meinen PhP kentnissen hab ich da keine Chance.

    Dann wollt ich versuchen das Antispam Modul nur auszutauschen, wußte aber nicht genau wie ich da anfange, also aus so belassen traurig
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    für was brauchst du das denn für kontakt? ... es gibt auch ein modul welches das google capcha einbindet

    zu sehen auch auf meiner webseite www.felix-hohlwegler.de unter kontakt
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Das AntiSpam System besteht nur aus einpaar Dateien,

    folgende Dateien musst du aus Version P nehmen.

    den Ordner include/includes/captcha

    und die Funktion aus der include/includes/func/allg.php

    - get_antispam
    - chk_antispam
    - genkey


    Zuletzt modifiziert von Revolution am 30.08.2013 - 20:40:41
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    1 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    ZitatZitat geschrieben von holz

    für was brauchst du das denn für kontakt? ... es gibt auch ein modul welches das google capcha einbindet

    zu sehen auch auf meiner webseite www.felix-hohlwegler.de unter kontakt


    Ja dieses Google Captcha ist leider nicht das was ich will. Finde das im Vergleich zu dem aus der P Version von Ilch hässlich, groß und unleserlich.
    Mal sehen ob ich die Tips von Revolution umsetzen kann.
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Wie gesagt ich glaube das sind alle Dateien, die beiden bzw. 3 (bin mir bei der genkey nicht sicher, im zweifel ersetzen lachen ) Funktionen musst du per Hand ersetzen.

    Es gibt auch noch einen Adminbereich zum Captcha System, dieser Fehlt aber in Version P. Falls du diesen benötigst melde dich lachen
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Habsch gerade gemacht sieht gut aus. Kann man das Antispam nicht per Knopfdruck random erstellen lassen ? wenn es mal unleserlich ist ?
    Und muss ich das sonstwo noch ändern ?


    meine allg.php
    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    ##
    ###
    ####
    #####  W E I T E R L E I T U N G S   F U N K T I O N
    function wd ($wdLINK,$wdTEXT,$wdZEIT=3) {
            global $lang;
    
      if (!is_array($wdLINK)) {
              $urls  = '<a href="'.$wdLINK.'">'.$lang['forward2'].'</a>';
              $wdURL = $wdLINK;
            } else {
              $urls  = '';
        $i = 0;
                    foreach($wdLINK as $k => $v) {
                      if ( $i == 0 ) {
                              $wdURL = $v;
                            }
                            $urls .= '<a href="'.$v.'">'.$k.'</a><br />';
                      $i++;
                    }
            }
            $tpl = new tpl ( 'weiterleitung.htm' );
            $ar = array
            (
        'LINK' => $urls,
              'URL'  => $wdURL,
                    'ZEIT' => $wdZEIT,
                    'TEXT' => $wdTEXT
            );
            $tpl->set_ar_out ( $ar, 0 );
            unset($tpl);
    }
    
    ##
    ###
    ####
    ##### g e t   R e c h t
    function getrecht ($RECHT, $USERRECHT) {
            if ( empty ( $USERRECHT ) ) {
              return (false);
            } else {
              if($USERRECHT <= $RECHT) {
                return (true);
              } else {
                return (false);
              }
      }
    }
    
    ##
    ###
    ####
    ##### g e t   U s e r   N a m e
    function get_n($uid) {
            $row = db_fetch_object(db_query("SELECT name FROM prefix_user WHERE id = '".$uid."'"));
            return $row->name;
    }
    
    ##
    ###
    ####
    ##### wochentage sonntag 0 samstag 6
    function wtage ($tag) {
      $wtage = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
      return ($wtage[$tag]);
    }
    
    ##
    ###
    ####
    ##### monate in deutsch
    function getDmon ($mon) {
      $monate = array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
      return($monate[$mon-1]);
    }
    
    
    ##
    ###
    ####
    ##### a l l g e m e i n e s   A r r a y
    function getAllgAr () {
    
            # v1 = schluessel
            # v2 = wert
            # v3 = feldtyp
      # v4 = kurze beschreibung wenn n�tig
    
            $ar = array();
            $abf = "SELECT schl, wert FROM `prefix_config`";
            $erg = db_query($abf);
            while($row = db_fetch_assoc($erg) ) {
              $ar[$row['schl']] = $row['wert'];
            }
            return $ar;
    }
    
    ##
    ###
    ####
    ##### UserRang ermitteln
    function userrang ($post,$uid) {
      global $global_user_rang_array;
    
      if (!isset($global_user_rang_array[$uid])) {
        if (!isset($global_user_rang_array)) {
          $global_user_rang_array = array();
        }
        if ( empty($uid) ) {
          $rRang = 'Gast';
        } else {
          $rRang = @db_result(db_query("SELECT bez FROM prefix_user LEFT JOIN prefix_ranks ON prefix_ranks.id = prefix_user.spezrank WHERE prefix_user.id = ".$uid),0);
        }
        if ( empty($rRang) ) {
          $post = ( $post == 0 ? 1 : $post );
          $rRang = @db_result(db_query("SELECT bez FROM `prefix_ranks` WHERE spez = 0 AND min <= ".$post." ORDER BY min DESC LIMIT 1"),0);
        } elseif ( $rRang != 'Gast' ) {
          $rRang = '<b><font color="#72A3AA">'.$rRang.'</font></b>';
        }
        $global_user_rang_array[$uid] = $rRang;
      }
    
      return ($global_user_rang_array[$uid]);
    }
    
    
    ##
    ###
    ####
    ##### makiert suchwoerter
    function  markword($text,$such) {
      $erg  = '<span style="background-color: #DEECEE;">';
      $erg .= $such."</span>";
            $text = str_replace($such,$erg,$text);
      return $text;
    }
    
    
    ##
    ###
    ####
    ##### gibt die smiley lilste zurueck
    function getsmilies () {
      global $lang;
      $zeilen = 3; $i = 0;
            $b = '<script language="JavaScript" type="text/javascript">function moreSmilies () { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
            while ($row = db_fetch_object($erg) ) {
    
        $b .= 'x.document.write ("<a href=\"javascript:opener.put(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiles/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
    
        if ($i<12) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:put(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
            }
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>12) { $a .= '<br /><br /><center><a href="javascript:moreSmilies();">'.$lang['more'].'</a></center>'; }
      $a = $b.$a;
      return ($a);
    }
    
    
    
    ##
    ###
    ####
    ##### generey key with x length
    function genkey ( $anz ) {
            $letterArray = array ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0');
      $key = '';
            for ($i=0;$i < $anz ; $i ++)
            {
                mt_srand((double)microtime()*1000000);
                $zufallZahl = mt_rand(0,62);
          $key .= $letterArray[$zufallZahl];
      }
            return ( $key );
    }
    
    function icmail ($mail,$bet,$txt, $from = '', $html=false) {
      global $allgAr;
      if ( $from == '' ) {
        $from = $allgAr['allg_default_subject'].' <'.$allgAr['adminMail'].'>';
      }
      $from    = preg_replace ("/\015\012|\015|\012/", "", $from);
      $header  = "From: ".$from."\n";
      $header .= "MIME-Version: 1.0\n";
      $header .= "Content-Type: ".($html?"text/html":"text/plain")."; charset=\"iso-8859-1\";\n";
      $header .= "Content-Transfer-Encoding: 8bit";
    
      $mail = escape_for_email($mail);
      $bet  = escape_for_email($bet,true);
      $txt  = str_replace("\r", "\n", str_replace("\r\n", "\n",$txt));
    
      if ($allgAr['mail_smtp']) {
          require_once('include/includes/func/smtp.php');
          return smtpmail($mail, $bet ,$txt , $header );
      } elseif ( mail ( $mail, $bet, $txt, $header) ) {
              return ( true );
      } else {
              return ( false );
      }
    }
    
    
    function html_enc_substr($text, $start, $length) {
       $trans_tbl = get_html_translation_table(HTML_ENTITIES);
       $trans_tbl = array_flip($trans_tbl);
       return(htmlentities(substr(strtr($text, $trans_tbl), $start, $length)));
    }
    
    function get_datum ($d) {
      if (strpos($d,'.') !== FALSE) { $d = str_replace('.','-',$d); }
      if (strpos($d,'/') !== FALSE) { $d = str_replace('/','-',$d); }
      if (is_numeric(substr($d,-4))) {
        list($t,$m,$j) = explode('-', $d);
      } elseif (is_numeric(substr($d,0,4))) {
        list($j,$m,$t) = explode('-', $d);
      }
      $d = $j.'-'.$m.'-'.$t;
      return ($d);
    }
    
    function get_homepage ($h) {
      $h = trim($h);
      if (!empty($h) AND substr($h, 0, 7) != 'http://') {
        $h = 'http://'.$h;
      }
      return ($h);
    }
    
    function get_wargameimg ($img) {
      if (file_exists('include/images/wargames/'.$img.'.gif')) {
        return ('<img src="include/images/wargames/'.$img.'.gif" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpeg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpeg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.png')) {
        return ('<img src="include/images/wargames/'.$img.'.png" alt="'.$img.'" border="0">');
      }
      return ('');
    }
    
    function iurlencode_help ($a) {
      if (preg_match("/(http:|https:|ftp:)/", $a[0])) {
        return ($a[0]);
      }
    
      return (rawurlencode($a[1]).substr($a[0], -1));
    }
    
    function iurlencode ($s) {
      return (preg_replace_callback("/([^\/]+|\/[^\.])[\.\/]/", 'iurlencode_help', $s));
      /*
      $x = 'false';
      if (preg_match ('/(http:|https:|ftp:)[^:]+:[^@]+@./', $s)) {
        $x = preg_replace('/([^:]+:[^@]+@)./',"\\1",$s);
              $s = str_replace($x,'',$s);
            } elseif (substr($s, 0, 7) == 'http://') {
              $s = substr ($s, 7);
                    $x = 'http://';
            } elseif (substr($s, 0, 8) == 'https://') {
              $s = substr ($s, 8);
              $x = 'https://';
            } elseif (substr($s, 0, 6) == 'ftp://') {
              $s = substr ($s, 6);
              $x = 'ftp://';
            }
    
    
            $a = explode('/', $s);
      $r = '';
      for ($i=0;$i<count($a);$i++) {
        $r .= rawurlencode($a[$i]).'/';
      }
    
            if ($x !== 'false') {
              $r = $x.$r;
            }
    
      $r = substr($r, 0, -1);
      return ($r);
      */
    }
    
    /**
     * Prüft, ob der Antispamcode richtig eingegeben wurde
     * Der NoPictureMode fügt ein Hidden Feld ein, um Cross Site Request Forgery Attacken zu unterbinden, der NoPictureMode
     * wird automatisch genutzt, wenn kein Bildabfrage statt findet, kann aber auch erzwungen werden
     *
     * @global array $allgAr
     * @param string $m Modulname, um unterschiedliche Antispamfelder auf einer Seite zu ermöglichen
     * @param boolean $nopictures NoPictureMode erzwingen
     * @return boolean
     */
    function chk_antispam($m, $nopictures = false)
    {
        global $allgAr;
    
        if (!$nopictures && is_numeric($allgAr['antispam']) && has_right($allgAr['antispam'])) {
            $nopictures = true;
        }
    
        $valid = false;
    
        if ($nopictures && isset($_POST['antispam_id'])) {
            $antispamId = $_POST['antispam_id'];
            if (isset($_SESSION['antispam'][$antispamId]) && $_SESSION['antispam'][$antispamId]) {
                $valid = true;
                unset($_SESSION['antispam'][$antispamId]);
            }
        } elseif (isset($_POST['captcha_code']) && isset($_POST['captcha_id'])) {
            require_once 'include/includes/captcha/Captcha.php';
            $controller = new Captcha();
            $captchaCode = strtoupper($_POST['captcha_code']);
            $valid = $controller->isValid($captchaCode, $_POST['captcha_id']);
        }
        return $valid;
    }
    
    /**
     * Erzeugt HTML Code für ein Formularfeld, welches für einen Antibot-Schutz dienen oder vor CSFR Attacken schützen soll
     * Beschreibung zum NoPictureMode bitte der chk_antispam Funktion entnehmen
     *
     * @global array $allgAr
     * @param string $m Modulname
     * @param integer $t Type, der angibt wie das Formularfeld formatiert wird (0, 1 oder > 10 als Breite für das label) siehe Code :P
     * @param boolean $nopictures Erzwing NoPictureMode
     * @return string
     */
    function get_antispam($m, $t, $nopictures = false)
    {
        global $allgAr, $ILCH_BODYEND_ADDITIONS;
        static $addedJavascript = false;
    
        if ($addedJavascript === false) {
            $ILCH_BODYEND_ADDITIONS .= '<script type="text/javascript" src="include/includes/js/captcha.js"></script>' . "\n";
            $addedJavascript = true;
        }
    
        if (!$nopictures && $t < 0 || (is_numeric($allgAr['antispam']) && has_right($allgAr['antispam']))) {
            $nopictures = true;
        }
    
        $id = uniqid($m . '_', true);
    
        if ($nopictures) {
            $_SESSION['antispam'][$id] = true;
            return '<input type="hidden" name="antispam_id" value="' . $id . '" />';
        }
    
        include 'include/includes/captcha/settings.php';
    
        $helpText = 'Geben Sie diese Zeichen in das direkt daneben stehende Feld ein.';
        $seperator = ' ';
    
        if ($t == 0) {
            $seperator = '<br />';
            $helpText = 'Geben Sie diese Zeichen in das direkt darunter stehende Feld ein.';
        }
        $img = '<img width="' . $imagewidth . '" height="' . $imageheight . '" src="include/includes/captcha/captchaimg.php?id='
            . $id . '&nocache=' . time() . '" alt="captchaimg" title="' . $helpText . '" class="captchaImage">'
            . $seperator . '<input class="captcha_code" name="captcha_code" type="text" maxlength="5" size="8" title="Geben Sie die Zeichen aus dem Bild ein">'
            . '<input type="hidden" name="captcha_id" value="' . $id .  '" />';
            ;
    
        if ($t == 1) {
            $img = '<tr><td class="Cmite"><b>Antispam</b></td><td class="Cnorm">' . $img . '</td></tr>';
        } elseif ($t > 10) {
            $img = '<label style="float:left; width: ' . $t . 'px; ">Antispam</label>' . $img . '<br/>';
        }
        return $img;
    }
    
    // Funktion scandir für PHP 4
    if (version_compare(phpversion(), '5.0.0') == -1) {
        function scandir($dir)
        {
            $dh = opendir($dir);
            while (false !== ($filename = readdir($dh))) $files[] = $filename;
            sort($files);
            return $files;
        }
    }
    
    // Funktion, die die Größe aller Dateien im Ordner zusammenrechnet
    function dirsize($dir)
    {
        if (!is_dir($dir)) {
            return -1;
        }
        $size = 0;
        $files = array_slice(scandir($dir), 2);
        foreach ($files as $filenr => $file) {
            if (is_dir($dir . $file)) {
                $size += dirsize($dir . $file . '/');
            } else {
                $size += @filesize($dir . $file);
            }
        }
        return $size;
    }
    
    //Rechnet bytes in KB oder MB um
    function nicebytes($bytes){
        if ($bytes<1000000) {
            return round($bytes/1024,2).' KB';
        } else {
            return round($bytes/(1024*1024),2).' MB';
        }
    }
    
    ?>


    ZitatZitat
    Es gibt auch noch einen Adminbereich zum Captcha System, dieser Fehlt aber in Version P. Falls du diesen benötigst melde dich


    Oh das wäre super lächeln


    Zuletzt modifiziert von Zeisig am 30.08.2013 - 23:06:29
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Puhh das mit dem neu laden des Captchas ist mal eine gute idee, ist aber derzeit nicht möglich.
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Dachte ich hab das bei der Ilch 1.1P gesehen oder doch bei der 1.2 ?
    Weiß nicht mehr wo. Dachte schon ich hätte das falsch eingebaut.
    Aber danke für die gute erklärung, habs hinbekommen soweit.
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Es geht doch lachen
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Du kannst das wie folgt Umsetzen.

    include/allg.php

    In der get_antispam Funktion kommt ein kleines JS Script hinzu und zwar nach dem

    if(is_numeric...


    folgenden Code nach der If Zeile einfügen:

    echo '  
      <script type="text/javascript">
    <!--
    function reloadCaptcha()
    {
    
        var rand = Math.floor(Math.random() * 100) + 1
          if (document.images)
    		document.images.captcha_bild.src = \'include/includes/captcha/captchaimg.php?\' + rand;    
    
    }
    -->
    </script>  ';


    --- Die Einbindung des JS Scripts kann man evt auch über $ILCH_HEADER_ADDITIONS machen ----


    Dann in der allg.php etwas tiefer nach der Ausgabe des Captcha Bilds suchen.
    Zu erkennen am <img src="include/includes/captcha/captchaimg.php"

    ]<img src="include/includes/captcha/captchaimg.php"[/i] muss beim IMG-Tag eine ID hinzugefügt werden id="captcha_bild".

    Das sollte dann so aussehen:
    <img id="captcha_bild" src="include/includes/captcha/captchaimg.php" ...


    So und nun die Art wie du das Bild neu laden möchtest, per Button / Link etc. es ist egal einfach onclick="reloadCaptcha()" diesem Tag geben.

    Ich hab zum Test den Bild (IMG-TAG) diese onClick Geschichte hinzugefügt, beim klick auf das Bild wird dieses nun neugeladen......


    <img id="captcha_bild" onclick="reloadCaptcha()" src="include/includes/captcha/captchaimg.php"...





    P.s.
    der Schritt mit der ID muss ggf. nochmal gemacht werden, falls es mehrere
    <img src="include/includes/captcha/captchaimg.php" gibt.



    Zuletzt modifiziert von Revolution am 31.08.2013 - 19:51:34
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    leider verstehe ich gerade nur Bahnhof :/
    Kannst Du mir dabei helfen ? Welche Datei wohin ?
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Hab den Text nochmal geändert, sonst müsstest du nochmal deine allg.php Posten.
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Zeisig Mitglied
    Registriert seit
    05.03.2013
    Beiträge
    229
    Beitragswertungen
    2 Beitragspunkte
    Hallo Revolution,
    erst mal danke nochmal für Deine Mühen.
    ich hab das jetzt so eingebunden, aber ich erhalte dauernd Fehlermeldungen. Ich mach da irgendwas falsch. Ich poste nochmal meine allg.ph und bitte Dich diese mal so zu modifizieren wie Du das meinst.

    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    ##
    ###
    ####
    #####  W E I T E R L E I T U N G S   F U N K T I O N
    function wd ($wdLINK,$wdTEXT,$wdZEIT=3) {
            global $lang;
    
      if (!is_array($wdLINK)) {
              $urls  = '<a href="'.$wdLINK.'">'.$lang['forward2'].'</a>';
              $wdURL = $wdLINK;
            } else {
              $urls  = '';
        $i = 0;
                    foreach($wdLINK as $k => $v) {
                      if ( $i == 0 ) {
                              $wdURL = $v;
                            }
                            $urls .= '<a href="'.$v.'">'.$k.'</a><br />';
                      $i++;
                    }
            }
            $tpl = new tpl ( 'weiterleitung.htm' );
            $ar = array
            (
        'LINK' => $urls,
              'URL'  => $wdURL,
                    'ZEIT' => $wdZEIT,
                    'TEXT' => $wdTEXT
            );
            $tpl->set_ar_out ( $ar, 0 );
            unset($tpl);
    }
    
    ##
    ###
    ####
    ##### g e t   R e c h t
    function getrecht ($RECHT, $USERRECHT) {
            if ( empty ( $USERRECHT ) ) {
              return (false);
            } else {
              if($USERRECHT <= $RECHT) {
                return (true);
              } else {
                return (false);
              }
      }
    }
    
    ##
    ###
    ####
    ##### g e t   U s e r   N a m e
    function get_n($uid) {
            $row = db_fetch_object(db_query("SELECT name FROM prefix_user WHERE id = '".$uid."'"));
            return $row->name;
    }
    
    ##
    ###
    ####
    ##### wochentage sonntag 0 samstag 6
    function wtage ($tag) {
      $wtage = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
      return ($wtage[$tag]);
    }
    
    ##
    ###
    ####
    ##### monate in deutsch
    function getDmon ($mon) {
      $monate = array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
      return($monate[$mon-1]);
    }
    
    
    ##
    ###
    ####
    ##### a l l g e m e i n e s   A r r a y
    function getAllgAr () {
    
            # v1 = schluessel
            # v2 = wert
            # v3 = feldtyp
      # v4 = kurze beschreibung wenn n�tig
    
            $ar = array();
            $abf = "SELECT schl, wert FROM `prefix_config`";
            $erg = db_query($abf);
            while($row = db_fetch_assoc($erg) ) {
              $ar[$row['schl']] = $row['wert'];
            }
            return $ar;
    }
    
    ##
    ###
    ####
    ##### UserRang ermitteln
    function userrang ($post,$uid) {
      global $global_user_rang_array;
    
      if (!isset($global_user_rang_array[$uid])) {
        if (!isset($global_user_rang_array)) {
          $global_user_rang_array = array();
        }
        if ( empty($uid) ) {
          $rRang = 'Gast';
        } else {
          $rRang = @db_result(db_query("SELECT bez FROM prefix_user LEFT JOIN prefix_ranks ON prefix_ranks.id = prefix_user.spezrank WHERE prefix_user.id = ".$uid),0);
        }
        if ( empty($rRang) ) {
          $post = ( $post == 0 ? 1 : $post );
          $rRang = @db_result(db_query("SELECT bez FROM `prefix_ranks` WHERE spez = 0 AND min <= ".$post." ORDER BY min DESC LIMIT 1"),0);
        } elseif ( $rRang != 'Gast' ) {
          $rRang = '<b><font color="#72A3AA">'.$rRang.'</font></b>';
        }
        $global_user_rang_array[$uid] = $rRang;
      }
    
      return ($global_user_rang_array[$uid]);
    }
    
    
    ##
    ###
    ####
    ##### makiert suchwoerter
    function  markword($text,$such) {
      $erg  = '<span style="background-color: #DEECEE;">';
      $erg .= $such."</span>";
            $text = str_replace($such,$erg,$text);
      return $text;
    }
    
    
    ##
    ###
    ####
    ##### gibt die smiley lilste zurueck
    function getsmilies () {
      global $lang;
      $zeilen = 3; $i = 0;
            $b = '<script language="JavaScript" type="text/javascript">function moreSmilies () { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
            while ($row = db_fetch_object($erg) ) {
    
        $b .= 'x.document.write ("<a href=\"javascript:opener.put(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiles/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
    
        if ($i<12) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:put(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
            }
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>12) { $a .= '<br /><br /><center><a href="javascript:moreSmilies();">'.$lang['more'].'</a></center>'; }
      $a = $b.$a;
      return ($a);
    }
    
    
    
    ##
    ###
    ####
    ##### generey key with x length
    function genkey ( $anz ) {
            $letterArray = array ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0');
      $key = '';
            for ($i=0;$i < $anz ; $i ++)
            {
                mt_srand((double)microtime()*1000000);
                $zufallZahl = mt_rand(0,62);
          $key .= $letterArray[$zufallZahl];
      }
            return ( $key );
    }
    
    function icmail ($mail,$bet,$txt, $from = '', $html=false) {
      global $allgAr;
      if ( $from == '' ) {
        $from = $allgAr['allg_default_subject'].' <'.$allgAr['adminMail'].'>';
      }
      $from    = preg_replace ("/\015\012|\015|\012/", "", $from);
      $header  = "From: ".$from."\n";
      $header .= "MIME-Version: 1.0\n";
      $header .= "Content-Type: ".($html?"text/html":"text/plain")."; charset=\"iso-8859-1\";\n";
      $header .= "Content-Transfer-Encoding: 8bit";
    
      $mail = escape_for_email($mail);
      $bet  = escape_for_email($bet,true);
      $txt  = str_replace("\r", "\n", str_replace("\r\n", "\n",$txt));
    
      if ($allgAr['mail_smtp']) {
          require_once('include/includes/func/smtp.php');
          return smtpmail($mail, $bet ,$txt , $header );
      } elseif ( mail ( $mail, $bet, $txt, $header) ) {
              return ( true );
      } else {
              return ( false );
      }
    }
    
    
    function html_enc_substr($text, $start, $length) {
       $trans_tbl = get_html_translation_table(HTML_ENTITIES);
       $trans_tbl = array_flip($trans_tbl);
       return(htmlentities(substr(strtr($text, $trans_tbl), $start, $length)));
    }
    
    function get_datum ($d) {
      if (strpos($d,'.') !== FALSE) { $d = str_replace('.','-',$d); }
      if (strpos($d,'/') !== FALSE) { $d = str_replace('/','-',$d); }
      if (is_numeric(substr($d,-4))) {
        list($t,$m,$j) = explode('-', $d);
      } elseif (is_numeric(substr($d,0,4))) {
        list($j,$m,$t) = explode('-', $d);
      }
      $d = $j.'-'.$m.'-'.$t;
      return ($d);
    }
    
    function get_homepage ($h) {
      $h = trim($h);
      if (!empty($h) AND substr($h, 0, 7) != 'http://') {
        $h = 'http://'.$h;
      }
      return ($h);
    }
    
    function get_wargameimg ($img) {
      if (file_exists('include/images/wargames/'.$img.'.gif')) {
        return ('<img src="include/images/wargames/'.$img.'.gif" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpeg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpeg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.png')) {
        return ('<img src="include/images/wargames/'.$img.'.png" alt="'.$img.'" border="0">');
      }
      return ('');
    }
    
    function iurlencode_help ($a) {
      if (preg_match("/(http:|https:|ftp:)/", $a[0])) {
        return ($a[0]);
      }
    
      return (rawurlencode($a[1]).substr($a[0], -1));
    }
    
    function iurlencode ($s) {
      return (preg_replace_callback("/([^\/]+|\/[^\.])[\.\/]/", 'iurlencode_help', $s));
      /*
      $x = 'false';
      if (preg_match ('/(http:|https:|ftp:)[^:]+:[^@]+@./', $s)) {
        $x = preg_replace('/([^:]+:[^@]+@)./',"\\1",$s);
              $s = str_replace($x,'',$s);
            } elseif (substr($s, 0, 7) == 'http://') {
              $s = substr ($s, 7);
                    $x = 'http://';
            } elseif (substr($s, 0, 8) == 'https://') {
              $s = substr ($s, 8);
              $x = 'https://';
            } elseif (substr($s, 0, 6) == 'ftp://') {
              $s = substr ($s, 6);
              $x = 'ftp://';
            }
    
    
            $a = explode('/', $s);
      $r = '';
      for ($i=0;$i<count($a);$i++) {
        $r .= rawurlencode($a[$i]).'/';
      }
    
            if ($x !== 'false') {
              $r = $x.$r;
            }
    
      $r = substr($r, 0, -1);
      return ($r);
      */
    }
    
    /**
     * Prüft, ob der Antispamcode richtig eingegeben wurde
     * Der NoPictureMode fügt ein Hidden Feld ein, um Cross Site Request Forgery Attacken zu unterbinden, der NoPictureMode
     * wird automatisch genutzt, wenn kein Bildabfrage statt findet, kann aber auch erzwungen werden
     *
     * @global array $allgAr
     * @param string $m Modulname, um unterschiedliche Antispamfelder auf einer Seite zu ermöglichen
     * @param boolean $nopictures NoPictureMode erzwingen
     * @return boolean
     */
    function chk_antispam($m, $nopictures = false)
    {
        global $allgAr;
    
        if (!$nopictures && is_numeric($allgAr['antispam']) && has_right($allgAr['antispam'])) {
            $nopictures = true;
        }
    
        $valid = false;
    
        if ($nopictures && isset($_POST['antispam_id'])) {
            $antispamId = $_POST['antispam_id'];
            if (isset($_SESSION['antispam'][$antispamId]) && $_SESSION['antispam'][$antispamId]) {
                $valid = true;
                unset($_SESSION['antispam'][$antispamId]);
            }
        } elseif (isset($_POST['captcha_code']) && isset($_POST['captcha_id'])) {
            require_once 'include/includes/captcha/Captcha.php';
            $controller = new Captcha();
            $captchaCode = strtoupper($_POST['captcha_code']);
            $valid = $controller->isValid($captchaCode, $_POST['captcha_id']);
        }
        return $valid;
    }
    
    /**
     * Erzeugt HTML Code für ein Formularfeld, welches für einen Antibot-Schutz dienen oder vor CSFR Attacken schützen soll
     * Beschreibung zum NoPictureMode bitte der chk_antispam Funktion entnehmen
     *
     * @global array $allgAr
     * @param string $m Modulname
     * @param integer $t Type, der angibt wie das Formularfeld formatiert wird (0, 1 oder > 10 als Breite für das label) siehe Code :P
     * @param boolean $nopictures Erzwing NoPictureMode
     * @return string
     */
    function get_antispam($m, $t, $nopictures = false)
    {
        global $allgAr, $ILCH_BODYEND_ADDITIONS;
        static $addedJavascript = false;
    
        if ($addedJavascript === false) {
            $ILCH_BODYEND_ADDITIONS .= '<script type="text/javascript" src="include/includes/js/captcha.js"></script>' . "\n";
            $addedJavascript = true;
        }
    
        if (!$nopictures && $t < 0 || (is_numeric($allgAr['antispam']) && has_right($allgAr['antispam']))) {
            $nopictures = true;
        }
    
        $id = uniqid($m . '_', true);
    
        if ($nopictures) {
            $_SESSION['antispam'][$id] = true;
            return '<input type="hidden" name="antispam_id" value="' . $id . '" />';
        }
    
        include 'include/includes/captcha/settings.php';
    
        $helpText = 'Geben Sie diese Zeichen in das direkt daneben stehende Feld ein.';
        $seperator = ' ';
    
        if ($t == 0) {
            $seperator = '<br />';
            $helpText = 'Geben Sie diese Zeichen in das direkt darunter stehende Feld ein.';
        }
        $img = '<img width="' . $imagewidth . '" height="' . $imageheight . '" src="include/includes/captcha/captchaimg.php?id='
            . $id . '&nocache=' . time() . '" alt="captchaimg" title="' . $helpText . '" class="captchaImage">'
            . $seperator . '<input class="captcha_code" name="captcha_code" type="text" maxlength="5" size="8" title="Geben Sie die Zeichen aus dem Bild ein">'
            . '<input type="hidden" name="captcha_id" value="' . $id .  '" />';
            ;
    
        if ($t == 1) {
            $img = '<tr><td class="Cmite"><b>Antispam</b></td><td class="Cnorm">' . $img . '</td></tr>';
        } elseif ($t > 10) {
            $img = '<label style="float:left; width: ' . $t . 'px; ">Antispam</label>' . $img . '<br/>';
        }
        return $img;
    }
    
    // Funktion scandir für PHP 4
    if (version_compare(phpversion(), '5.0.0') == -1) {
        function scandir($dir)
        {
            $dh = opendir($dir);
            while (false !== ($filename = readdir($dh))) $files[] = $filename;
            sort($files);
            return $files;
        }
    }
    
    // Funktion, die die Größe aller Dateien im Ordner zusammenrechnet
    function dirsize($dir)
    {
        if (!is_dir($dir)) {
            return -1;
        }
        $size = 0;
        $files = array_slice(scandir($dir), 2);
        foreach ($files as $filenr => $file) {
            if (is_dir($dir . $file)) {
                $size += dirsize($dir . $file . '/');
            } else {
                $size += @filesize($dir . $file);
            }
        }
        return $size;
    }
    
    //Rechnet bytes in KB oder MB um
    function nicebytes($bytes){
        if ($bytes<1000000) {
            return round($bytes/1024,2).' KB';
        } else {
            return round($bytes/(1024*1024),2).' MB';
        }
    }
    
    ?>



    Zuletzt modifiziert von Zeisig am 31.08.2013 - 19:59:43
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Kein wunder das es bei dir so nicht geht, die Funktion sieht ganz anders aus lachen

    Muss ich mir nochmal ansehen, aber auch da ist es möglich....
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    1 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    QuantumTecstar Mitglied
    Registriert seit
    07.01.2010
    Beiträge
    354
    Beitragswertungen
    4 Beitragspunkte
    GUten Abend ,
    ich habe mir heute das neue Captcha eingebaut und wollte das mit dem neu laden hinzufügen , allerdings finde ich das hier nicht if(is_numeric...

    Könnte mir das jmd einbauen ?

    hier mal die Datei:
    <?php
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    ##
    ###
    ####
    #####  W E I T E R L E I T U N G S   F U N K T I O N
    function wd ($wdLINK,$wdTEXT,$wdZEIT=3) {
    	global $lang;
    
      if (!is_array($wdLINK)) {
    	  $urls  = '<a href="'.$wdLINK.'">'.$lang['forward2'].'</a>';
    	  $wdURL = $wdLINK;
    	} else {
    	  $urls  = '';
        $i = 0;
    		foreach($wdLINK as $k => $v) {
    		  if ( $i == 0 ) {
    			  $wdURL = $v;
    			}
    			$urls .= '<a href="'.$v.'">'.$k.'</a><br />';
    		  $i++;
    		}
    	}
    	$tpl = new tpl ( 'weiterleitung.htm' );
    	$ar = array
    	(
        'LINK' => $urls,
    	  'URL'  => $wdURL,
    		'ZEIT' => $wdZEIT,
    		'TEXT' => $wdTEXT
    	);
    	$tpl->set_ar_out ( $ar, 0 );
    	unset($tpl);
    }
    
    ##
    ###
    ####
    ##### g e t   R e c h t
    function getrecht ($RECHT, $USERRECHT) {
    	if ( empty ( $USERRECHT ) ) {
    	  return (false);
    	} else {
    	  if($USERRECHT <= $RECHT) {
    	    return (true);
    	  } else {
    	    return (false);
    	  }
      }
    }
    
    ##
    ###
    ####
    ##### g e t   U s e r   N a m e
    function get_n($uid) {
    	$row = db_fetch_object(db_query("SELECT name FROM prefix_user WHERE id = '".$uid."'"));
    	return $row->name;
    }
    
    ##
    ###
    ####
    ##### wochentage sonntag 0 samstag 6
    function wtage ($tag) {
      $wtage = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
      return ($wtage[$tag]);
    }
    
    ##
    ###
    ####
    ##### monate in deutsch
    function getDmon ($mon) {
      $monate = array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
      return($monate[$mon-1]);
    }
    
    
    ##
    ###
    ####
    ##### a l l g e m e i n e s   A r r a y
    function getAllgAr () {
    
    	# v1 = schluessel
    	# v2 = wert
    	# v3 = feldtyp
      # v4 = kurze beschreibung wenn n&#65533;tig
    
    	$ar = array();
    	$abf = "SELECT schl, wert FROM `prefix_config`";
    	$erg = db_query($abf);
    	while($row = db_fetch_assoc($erg) ) {
    	  $ar[$row['schl']] = $row['wert'];
    	}
    	return $ar;
    }
    
    ##
    ###
    ####
    ##### UserRang ermitteln
    function userrang ($post,$uid) {
      global $global_user_rang_array;
    
      if (!isset($global_user_rang_array[$uid])) {
        if (!isset($global_user_rang_array)) {
          $global_user_rang_array = array();
        }
        if ( empty($uid) ) {
          $rRang = 'Gast';
        } else {
          $rRang = @db_result(db_query("SELECT bez FROM prefix_user LEFT JOIN prefix_ranks ON prefix_ranks.id = prefix_user.spezrank WHERE prefix_user.id = ".$uid),0);
        }
        if ( empty($rRang) ) {
          $post = ( $post == 0 ? 1 : $post );
          $rRang = @db_result(db_query("SELECT bez FROM `prefix_ranks` WHERE spez = 0 AND min <= ".$post." ORDER BY min DESC LIMIT 1"),0);
        } elseif ( $rRang != 'Gast' ) {
          $rRang = '<i><b>'.$rRang.'</b></i>';
        }
        $global_user_rang_array[$uid] = $rRang;
      }
    
      return ($global_user_rang_array[$uid]);
    }
    
    
    ##
    ###
    ####
    ##### makiert suchwoerter
    function  markword($text,$such) {
      $erg  = '<span style="background-color: #EBF09B;">';
      $erg .= $such."</span>";
    	$text = str_replace($such,$erg,$text);
      return $text;
    }
    
    
    ##
    ###
    ####
    ##### gibt die smiley lilste zurueck
    function getsmilies () {
      global $lang;
      $zeilen = 3; $i = 0;
    	$b = '<script language="JavaScript" type="text/javascript">function moreSmilies () { var x = window.open("about:blank", "moreSmilies", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
      $a = '';
      $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
    	while ($row = db_fetch_object($erg) ) {
    
        $b .= 'x.document.write ("<a href=\"javascript:opener.put(\''.addslashes(addslashes($row->ent)).'\')\">");';
        $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiles/'.$row->url.'\" title=\"'.$row->emo.'\"></a>");';
    
        if ($i<12) {
          # float einbauen
          if($i%$zeilen == 0 AND $i <> 0) { $a .= '<br /><br />'; }
          $a .= '<a href="javascript:put(\''.addslashes($row->ent).'\')">';
          $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0" title="'.$row->emo.'"></a>';
        }
        $i++;
    	}
      $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
      if ($i>12) { $a .= '<br /><br /><center><a href="javascript:moreSmilies();">'.$lang['more'].'</a></center>'; }
      $a = $b.$a;
      return ($a);
    }
    
    
    
    ##
    ###
    ####
    ##### generey key with x length
    function genkey ( $anz ) {
    	$letterArray = array ('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','0');
      $key = '';
    	for ($i=0;$i < $anz ; $i ++)
    	{
    	    mt_srand((double)microtime()*1000000);
    	    $zufallZahl = mt_rand(0,62);
          $key .= $letterArray[$zufallZahl];
      }
    	return ( $key );
    }
    
    function icmail ($mail, $bet, $txt, $from = '', $html = false) {
    	global $allgAr;
    	include_once('include/includes/class/phpmailer/class.phpmailer.php');
    	$mailer = new PHPMailer();
    	if (empty($from)) {
    		$mailer->From = $allgAr['adminMail'];
    		$mailer->FromName = $allgAr['allg_default_subject'];
    	} elseif ( preg_match('%(.*) <([\w\.-]*@[\w\.-]*)>%i', $from, $tmp) ) {
    		$mailer->From = trim($tmp[2]);
    		$mailer->FromName = trim($tmp[1]);
    	} elseif (preg_match('%([\w\.-]*@[\w\.-]*)%i', $from, $tmp)) {
    		$mailer->From = trim($tmp[1]);
    		$mailer->FromName = '';
    	}
    	if ($allgAr['mail_smtp']) { //SMTP Versand
    
    		$smtpser = @db_result(db_query('SELECT `t1` FROM `prefix_allg` WHERE `k` = "smtpconf"'));
    		if (empty($smtpser)) {
    			echo '<span style="font-size: 2em; color: red;">Mailversand muss konfiguriert werden!</span><br />';
    		} else {
    			$smtp = unserialize($smtpser);
    
    			$mailer->IsSMTP();
    			$mailer->Host = $smtp['smtp_host'];
    			$mailer->SMTPAuth = ($smtp['smtp_auth'] == 'no' ? false : true);
    			if ($smtp['smtp_auth'] == 'ssl' or $smtp['smtp_auth'] == 'tls') {
    				$mailer->SMTPSecure = $smtp['smtp_auth'];
    			}
    			if (!empty($smtp['smtp_port'])) {
    				$mailer->Port = $smtp['smtp_port'];
    			}
    			$mailer->AddReplyTo($mailer->From, $mailer->FromName);
    
    			if ($smtp['smtp_changesubject'] and $mailer->From != $smtp['smtp_email']) {
    				$bet = '(For ' .$mailer->FromName . ' - '. $mailer->From .') '. $bet;
    				$mailer->From = $smtp['smtp_email'];
    			}
    
    			$mailer->Username = $smtp['smtp_login'];
    
    			require_once('include/includes/class/AzDGCrypt.class.inc.php');
    			$cr64 = new AzDGCrypt(DBDATE.DBUSER.DBPREF);
    			$mailer->Password = $cr64->decrypt($smtp['smtp_pass']);
    
    			if ($smtp['smtp_pop3beforesmtp'] == 1) {
    				include_once('include/includes/class/phpmailer/class.pop3.php');
    				$pop = new POP3();
    				$pop3port = !empty($smpt['smtp_pop3port']) ? $smpt['smtp_pop3port'] : 110;
    				$pop->Authorise($smpt['smtp_pop3host'], $pop3port, 5, $mailer->Username, $mailer->Password, 1);
    			}
    		}
    		//$mailer->SMTPDebug = true;
    	}
    	if (is_array($mail)) {
    		if ($mail[0] != 'bcc') {
    			array_shift($mail);
    			foreach ($mail as $m){
    				$mailer->AddBCC(escape_for_email($m));
    			}
    			$mailer->AddAddress($mailer->From);
    		} else {
    			foreach ($mail as $m){
    				$mailer->AddAddress(escape_for_email($m));
    			}
    		}
    	} else {
    		$mailer->AddAddress(escape_for_email($mail));
    	}
    	$mailer->Subject = escape_for_email($bet, true);
    	$txt = str_replace("\r", "\n", str_replace("\r\n", "\n", $txt));
    	if ($html) {
    		$mailer->IsHTML(true);
    		$mailer->AltBody = strip_tags($txt);
    	}
    	$mailer->Body = $txt;
    
    	if ($mailer->Send()) {
    		return true;
    	} else {
    		if (is_coadmin()) {
    			echo "<h2 style=\"color:red;\">Mailer Error: " . $mailer->ErrorInfo . '</h2>';
    		}
    		return false;
    	}
    }
    
    
    function html_enc_substr($text, $start, $length) {
       $trans_tbl = get_html_translation_table(HTML_ENTITIES);
       $trans_tbl = array_flip($trans_tbl);
       return(htmlentities(substr(strtr($text, $trans_tbl), $start, $length)));
    }
    
    function get_datum ($d) {
      if (strpos($d,'.') !== FALSE) { $d = str_replace('.','-',$d); }
      if (strpos($d,'/') !== FALSE) { $d = str_replace('/','-',$d); }
      if (is_numeric(substr($d,-4))) {
        list($t,$m,$j) = explode('-', $d);
      } elseif (is_numeric(substr($d,0,4))) {
        list($j,$m,$t) = explode('-', $d);
      }
      $d = $j.'-'.$m.'-'.$t;
      return ($d);
    }
    
    function get_homepage ($h) {
      $h = trim($h);
      if (!empty($h) AND substr($h, 0, 7) != 'http://') {
        $h = 'http://'.$h;
      }
      return ($h);
    }
    
    function get_wargameimg ($img) {
      if (file_exists('include/images/wargames/'.$img.'.gif')) {
        return ('<img src="include/images/wargames/'.$img.'.gif" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.jpeg')) {
        return ('<img src="include/images/wargames/'.$img.'.jpeg" alt="'.$img.'" border="0">');
      } elseif (file_exists('include/images/wargames/'.$img.'.png')) {
        return ('<img src="include/images/wargames/'.$img.'.png" alt="'.$img.'" border="0">');
      }
      return ('');
    }
    
    function iurlencode_help ($a) {
      if (preg_match("/(http:|https:|ftp:)/", $a[0])) {
        return ($a[0]);
      }
    
      return (rawurlencode($a[1]).substr($a[0], -1));
    }
    
    function iurlencode ($s) {
      return (preg_replace_callback("/([^\/]+|\/[^\.])[\.\/]/", 'iurlencode_help', $s));
      /*
      $x = 'false';
      if (preg_match ('/(http:|https:|ftp:)[^:]+:[^@]+@./', $s)) {
        $x = preg_replace('/([^:]+:[^@]+@)./',"\\1",$s);
      	$s = str_replace($x,'',$s);
    	} elseif (substr($s, 0, 7) == 'http://') {
    	  $s = substr ($s, 7);
    		$x = 'http://';
    	} elseif (substr($s, 0, 8) == 'https://') {
    	  $s = substr ($s, 8);
    	  $x = 'https://';
    	} elseif (substr($s, 0, 6) == 'ftp://') {
    	  $s = substr ($s, 6);
    	  $x = 'ftp://';
    	}
    
    
    	$a = explode('/', $s);
      $r = '';
      for ($i=0;$i<count($a);$i++) {
        $r .= rawurlencode($a[$i]).'/';
      }
    
    	if ($x !== 'false') {
    	  $r = $x.$r;
    	}
    
      $r = substr($r, 0, -1);
      return ($r);
      */
    }
    
    # antispam
    function chk_antispam($m, $nopictures = false)
    {
        global $allgAr;
    
        if (!$nopictures && is_numeric($allgAr['antispam']) && has_right($allgAr['antispam'])) {
            $nopictures = true;
        }
    
        $valid = false;
    
        if ($nopictures && isset($_POST['antispam_id'])) {
            $antispamId = $_POST['antispam_id'];
            if (isset($_SESSION['antispam'][$antispamId]) && $_SESSION['antispam'][$antispamId]) {
                $valid = true;
                unset($_SESSION['antispam'][$antispamId]);
            }
        } elseif (isset($_POST['captcha_code']) && isset($_POST['captcha_id'])) {
            require_once 'include/includes/captcha/Captcha.php';
            $controller = new Captcha();
            $captchaCode = strtoupper($_POST['captcha_code']);
            $valid = $controller->isValid($captchaCode, $_POST['captcha_id']);
        }
        return $valid;
    }
    
    /**
     * Erzeugt HTML Code für ein Formularfeld, welches für einen Antibot-Schutz dienen oder vor CSFR Attacken schützen soll
     * Beschreibung zum NoPictureMode bitte der chk_antispam Funktion entnehmen
     *
     * @global array $allgAr
     * @param string $m Modulname
     * @param integer $t Type, der angibt wie das Formularfeld formatiert wird (0, 1 oder > 10 als Breite für das label) siehe Code :P
     * @param boolean $nopictures Erzwing NoPictureMode
     * @return string
     */
    function get_antispam($m, $t, $nopictures = false)
    {
        global $allgAr, $ILCH_BODYEND_ADDITIONS;
        static $addedJavascript = false;
    
        if ($addedJavascript === false) {
            $ILCH_BODYEND_ADDITIONS .= '<script type="text/javascript" src="include/includes/js/captcha.js"></script>' . "\n";
            $addedJavascript = true;
        }
    
        if (!$nopictures && $t < 0 || (is_numeric($allgAr['antispam']) && has_right($allgAr['antispam']))) {
            $nopictures = true;
        }
    
        $id = uniqid($m . '_', true);
    
        if ($nopictures) {
            $_SESSION['antispam'][$id] = true;
            return '<input type="hidden" name="antispam_id" value="' . $id . '" />';
        }
    
        include 'include/includes/captcha/settings.php';
    
        $helpText = 'Geben Sie diese Zeichen in das direkt daneben stehende Feld ein.';
        $seperator = ' ';
    
        if ($t == 0) {
            $seperator = '<br />';
            $helpText = 'Geben Sie diese Zeichen in das direkt darunter stehende Feld ein.';
        }
        $img = '<img width="' . $imagewidth . '" height="' . $imageheight . '" src="include/includes/captcha/captchaimg.php?id='
            . $id . '&nocache=' . time() . '" alt="captchaimg" title="' . $helpText . '" class="captchaImage">'
            . $seperator . '<input class="captcha_code" name="captcha_code" type="text" maxlength="5" size="8" title="Geben Sie die Zeichen aus dem Bild ein">'
            . '<input type="hidden" name="captcha_id" value="' . $id .  '" />';
            ;
    
        if ($t == 1) {
            $img = '<tr><td class="Cmite"><b>Antispam</b></td><td class="Cnorm">' . $img . '</td></tr>';
        } elseif ($t > 10) {
            $img = '<label style="float:left; width: ' . $t . 'px; ">Antispam</label>' . $img . '<br/>';
        }
        return $img;
    }
    
    # antispam
    
    // Funktion scandir für PHP 4
    if (version_compare(phpversion(), '5.0.0') == -1) {
        function scandir($dir)
        {
            $dh = opendir($dir);
            while (false !== ($filename = readdir($dh))) $files[] = $filename;
            sort($files);
            return $files;
        }
    }
    // Funktion array_fill_keys < PHP 5.2
    if (version_compare(phpversion(), '5.2.0') == -1) {
    	function array_fill_keys($target, $value = '') {
    		if(is_array($target)) {
    			foreach($target as $key => $val) {
    				$filledArray[$val] = is_array($value) ? $value[$key] : $value;
    			}
    		}
    		return $filledArray;
    	}
    }
    
    // Funktion, die die Größe aller Dateien im Ordner zusammenrechnet
    function dirsize($dir)
    {
        if (!is_dir($dir)) {
            return -1;
        }
        $size = 0;
        $files = array_slice(scandir($dir), 2);
        foreach ($files as $filenr => $file) {
            if (is_dir($dir . $file)) {
                $size += dirsize($dir . $file . '/');
            } else {
                $size += @filesize($dir . $file);
            }
        }
        return $size;
    }
    
    //Rechnet bytes in KB oder MB um
    function nicebytes($bytes){
        if ($bytes<1000000) {
            return round($bytes/1024,2).' KB';
        } else {
            return round($bytes/(1024*1024),2).' MB';
        }
    }
    
    ?>


    LG und danke euch
    Tja Qauntum halt^^
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    paul111 Mitglied
    Registriert seit
    23.01.2014
    Beiträge
    1
    Beitragswertungen
    0 Beitragspunkte
    Thanks man...............
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    marvman Mitglied
    Registriert seit
    22.05.2006
    Beiträge
    587
    Beitragswertungen
    3 Beitragspunkte
    Hallo,

    auch ich hbe Probleme beim einbau dieses Reload Buttons. Könnte man das noch ein wenig genauer erklären, soweit läuft das Antispam aus 1.1P bei mir.

    Gruß Marv

    externer Link
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    DeathBoy Mitglied
    Registriert seit
    24.02.2010
    Beiträge
    182
    Beitragswertungen
    1 Beitragspunkte
    ZitatZitat geschrieben von Revolution
    Das AntiSpam System besteht nur aus einpaar Dateien,

    folgende Dateien musst du aus Version P nehmen.

    den Ordner include/includes/captcha

    und die Funktion aus der include/includes/func/allg.php

    - get_antispam
    - chk_antispam
    - genkey


    Hi,
    sorry das ich den alten Beitrag rauskrame, wollte halt keinen neuen aufmachen da hier eh schon das Thema behandelt wird.
    Hab Ilch 1.1O und möchte dies aufgrund sehr vielen Mods ebenfalls nicht updaten.
    Bin hier gelandet, da ich nach einen Captcha-Code suche den ich ebenfalls beim registrieren nutzen kann. Wollte eben wie im Zitat beschrieben den Captcha von 1.1P übernehmen.

    Ordner include/includes/captcha hab ich erfolgreich hochgeladen,

    - get_antispam
    - chk_antispam
    - genkey

    sind in meiner allg.php bereits vorhanden, da ich eine southbox mit captcha nutze... zu meiner Frage:
    Wie füge ich das jetzt ein damit es den Code in der regist.php beim registrieren auch angezeigt/abgefragt wird???

    Gruß Mike
    Tattoo und Piercing Community: externer Link
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten