亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gentlesource_module_captcha.class.inc.php

?? This is the script which used on 10minutemail.com for temporary email.
?? PHP
字號:
<?php

/** 
 * GentleSource Guestbook Script
 * 
 * (C) Ralf Stadtaus http://www.gentlesource.com/
 * 
 * Dependencies:
 * PEAR Package: Text_Password 
 * PEAR Package: Image_Text 
 * PEAR Package: Find
 * PHP Extension: gd
 */


define('MODULE_CAPTCHA_IMAGE_FOLDER', 'image/');




/**
 * Manage modules
 */
class gentlesource_module_captcha extends gentlesource_module_common
{


    /**
     * Text of language file
     */
    var $text = array();

// -----------------------------------------------------------------------------




    /**
     *  Setup
     * 
     * @access public
     */
    function gentlesource_module_captcha()
    {
        $this->text = $this->load_language();
        
        // Configuration
        $this->add_property('name',         $this->text['txt_module_name']);
        $this->add_property('description',  $this->text['txt_module_description']);
        $this->add_property('trigger',  
                                array(  'frontend_comment_form',
                                        'frontend_save_content',
                                        'standalone'
                                        )
                                );
        
        // Settings to be allowed to read from and write to database
        $this->add_property('setting_names',  
                                array(  
                                        'module_captcha_active',
                                        'module_captcha_alternative',
                                        'module_captcha_garbage_collector_active',
                                        'module_captcha_font_size',
                                        'module_captcha_image_width',
                                        'module_captcha_image_height',
                                        )
                                );
        
        // Default values
        $this->add_property('module_captcha_active',                    'N');
        $this->add_property('module_captcha_alternative',               'N');
        $this->add_property('module_captcha_garbage_collector_active',  'Y');
        $this->add_property('module_captcha_font_size',                 20);
        $this->add_property('module_captcha_image_width',               200);
        $this->add_property('module_captcha_image_height',              60);
        $this->add_property('module_captcha_phrase_length',              8);
        
        // Get settings from database
        $this->get_settings();
        
        // Set module status 
        $this->status('module_captcha_active', 'N');
    }

// -----------------------------------------------------------------------------




    /**
     *  Administration
     * 
     * @access public
     */
    function administration()
    {
        $form = array();
        
        $form['module_captcha_active'] = array(
            'type'          => 'bool',
            'label'         => $this->text['txt_enable_captcha'],
            'description'   => $this->text['txt_enable_captcha_description'],
            'required'      => true
            );
        
        $form['module_captcha_font_size'] = array(
            'type'          => 'numeric',
            'label'         => $this->text['txt_font_size'],
            'description'   => '',
            'required'      => true
            );
        
        $form['module_captcha_image_width'] = array(
            'type'          => 'numeric',
            'label'         => $this->text['txt_image_width'],
            'description'   => '',
            'required'      => true
            );
        
        $form['module_captcha_image_height'] = array(
            'type'          => 'numeric',
            'label'         => $this->text['txt_image_height'],
            'description'   => '',
            'required'      => true
            );
        
        $form['module_captcha_alternative'] = array(
            'type'          => 'bool',
            'label'         => $this->text['txt_alternative_captcha'],
            'description'   => $this->text['txt_alternative_captcha_description'],
            'required'      => true
            );
        
        $form['module_captcha_garbage_collector_active'] = array(
            'type'          => 'bool',
            'label'         => $this->text['txt_garbage_collector'],
            'description'   => $this->text['txt_garbage_collector_description'],
            'required'      => true
            );
            
        return $form;
    }

// -----------------------------------------------------------------------------




    /**
     * 
     * @param $trigger
     * @param $settings Global settings
     * 
     * @access public
     */
    function process($trigger, &$settings, &$data, &$additional)
    {
        if ($trigger == 'frontend_comment_form') {
            // Generate captcha content
            if ($captcha = $this->create_captcha($settings)) {
                $this->set_output($trigger, $captcha);
            }
            
            // Garbage collector
            if ($this->get_property('module_captcha_garbage_collector_active') == 'Y') {
                $gc_config = array(
                                'number'    => 20, 
                                'directory' => $this->get_property('system_root') . $settings['cache_directory'], 
                                'time'      => 60,
                                'prefix'    => get_class($this) . '_'
                                );
                $this->delete($gc_config);
            }            
        }
        
        if ($trigger == 'frontend_save_content') {
            if (!$this->check_captcha($settings)) {
                $settings['message']['module_spam_check'] = $this->text['txt_captcha_try_again'];
                $additional['page_allow_comment'] = 'N';
            }
        }
        
        if ($trigger == 'standalone' 
                and preg_match('/^captcha/', $data['data']) != false
                and $this->get_property('module_captcha_alternative') == 'Y') {
            $position = (int)substr($data['data'], strpos($data['data'], '_')+1);
            $phrase = $this->get_session_property('phrase');
            $character = strtolower($phrase{$position});
            $source_image = $file = $this->get_property('module_path') . MODULE_CAPTCHA_IMAGE_FOLDER . 'captcha_' . $character . '.png';
            header('Content-Type: image/png');
            echo $png = file_get_contents($source_image);
            exit;
        }
    }

// -----------------------------------------------------------------------------





    /**
     * Create captcha
     * 
     * @access public
     */
    function create_captcha(&$settings)
    {        
        require_once 'Text/CAPTCHA.php';
        
        $captcha_error = false;
        
        // Set CAPTCHA options (font must exist!)
        $options = array(
            'font_size'     => $this->get_property('module_captcha_font_size'),
            'font_path'     => $this->get_property('module_path') . 'font/',
            'font_file'     => 'daft.ttf',  
            'phrase_len'    => $this->get_property('module_captcha_phrase_length'),
            );


        
        if ($this->get_property('module_captcha_alternative') == 'N') {

            // Generate a new Text_CAPTCHA object, Image driver
            $c = Text_CAPTCHA::factory('Image');
        
            $retval = $c->init( (int)$this->get_property('module_captcha_image_width'), 
                                (int)$this->get_property('module_captcha_image_height'), 
                                null,
                                $options);
            if (PEAR::isError($retval)) {
                return false;
            }
                    
            // Get CAPTCHA image (as PNG)
            $png = $c->getCAPTCHAAsPNG();
            if (PEAR::isError($png)) {
                return false;
            }
            $captcha_phrase = $c->getPhrase();        
        } else {
            $captcha_phrase = Text_Password::create($this->get_property('module_captcha_phrase_length'));
            
        }
        

        // Get CAPTCHA secret passphrase
        $this->set_session_property(array('phrase' => $captcha_phrase));
        unset($GLOBALS['phrase']);
        
        
        // Create captcha content
        if ($this->get_property('module_captcha_alternative') == 'N') {
            $image_path =   $this->get_property('system_root') .
                            $settings['cache_directory'] .
                            get_class($this) . '_' .
                            session_id() . 
                            '.png';
                            
            file_put_contents($image_path, $png);
            
            $image_url =    $settings['script_url'] .
                            $settings['cache_directory'] .
                            get_class($this) . '_' .
                            session_id() . 
                            '.png';
            $captcha_image = '<img src="' . $image_url . '?'. time() . '" align="absmiddle" />';  
                        
        } else { 
            $image_url =    $settings['script_url'] . '?module=captcha_';
            $captcha_image = '';
            $num = strlen($captcha_phrase)-1;
            for ($i = 0; $i <= $num; $i++)
            {
                $captcha_image .= '<img src="' . $image_url . $i . '&amp;'. time() . '" align="absmiddle" />';
            }  
        }
        
        
        // Output captcha
        $out = $this->get_output_object();
        $out->set_template_dir($this->get_property('module_path') . 'template/');        
        $out->assign($this->text);
        $out->assign('captcha_image', $captcha_image);
        return $out->fetch('captcha.tpl.html');
    }

// -----------------------------------------------------------------------------





    /**
     * Check captcha
     * 
     * @access public
     */
    function check_captcha(&$settings)
    {
        if ($_SERVER['REQUEST_METHOD'] == 'POST' 
                and isset($settings['_post']['save'])) {
        
            if (is_file($this->get_property('system_root') . $settings['cache_directory'] . session_id() . '.png')) {
                unlink($this->get_property('system_root') . $settings['cache_directory'] . session_id() . '.png');
            }
        
            if (isset($settings['_post']['phrase']) 
                    and $phrase = $this->get_session_property('phrase')
                    and strlen($settings['_post']['phrase']) > 0 
                    and strlen($phrase) > 0 
                    and strtolower($settings['_post']['phrase']) == strtolower($phrase)) {

                return true;
            }        
        }
    }

// -----------------------------------------------------------------------------




    /**
     * Get file list
     */
    function file_list($config)
    {
        if (!is_dir($config['directory'])) {
            return false;
        }
        include 'Find.php';
        $items = &File_Find::glob(  '#' . preg_quote($config['prefix']) . '([a-zA-Z0-9]+)\.png#', 
                                    $config['directory'], 
                                    'perl');

        if (!is_array($items) or sizeof($items) <= 0) {
            return false;
        }
        $list = array();
        while (list($key, $val) = each($items))
        {
            if (sizeof($list) >= ($config['number'] - 1)) {
                return $list;
            }
            $diff = (time() - filectime($config['directory'] . $val))/60;

            if ($diff > $config['time']) {
                $list[] = $val;
            }
        }
        return $list;
    }

// -----------------------------------------------------------------------------




    /**
     * Delete files
     */
    function delete($config)
    {
        if ($list = $this->file_list($config)) {
            if (!is_array($list)) {
                return false;
            }
            reset($list);
            while (list($key, $val) = each($list))
            {
                if (!is_file($config['directory'] . $val)) {
                    continue;
                }
                unlink($config['directory'] . $val);
            }
        }
    }

// -----------------------------------------------------------------------------




} // End of class








?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美麻豆精品久久久久久| 成人综合激情网| 欧美二区三区91| 日韩电影在线一区二区| 欧美不卡一区二区三区四区| 狠狠色综合日日| 国产精品色婷婷| 色婷婷一区二区| 人妖欧美一区二区| 欧美r级在线观看| 不卡高清视频专区| 亚洲一级片在线观看| 日韩精品专区在线| 成人天堂资源www在线| 亚洲欧美激情视频在线观看一区二区三区 | 日韩av网站在线观看| 欧美一二三四区在线| 粉嫩蜜臀av国产精品网站| 亚洲综合一二三区| 欧美tickle裸体挠脚心vk| yourporn久久国产精品| 五月天一区二区三区| 国产亚洲欧美色| 精品视频一区三区九区| 国产一区二区三区在线观看免费视频| 国产精品网站导航| 91精品国产综合久久久久| 成人一区二区在线观看| 亚洲成人在线网站| 中文字幕免费不卡在线| 91麻豆精品久久久久蜜臀| 成人免费精品视频| 免费欧美日韩国产三级电影| 亚洲天堂网中文字| 久久综合九色综合欧美亚洲| 91极品视觉盛宴| 国产乱一区二区| 亚洲成人激情社区| 国产精品久久久久久久蜜臀| 日韩一级精品视频在线观看| 97久久超碰国产精品| 韩国欧美国产1区| 亚洲一级片在线观看| 国产精品久久久99| 精品处破学生在线二十三| 欧美日韩一区国产| 99国产精品99久久久久久| 国产精品一区二区三区乱码| 免费不卡在线视频| 午夜精品影院在线观看| 亚洲六月丁香色婷婷综合久久| 久久综合九色欧美综合狠狠 | 青椒成人免费视频| 亚洲美女视频在线观看| 久久精品在线免费观看| 日韩欧美国产三级| 91精品国产aⅴ一区二区| 在线观看成人免费视频| jizzjizzjizz欧美| 岛国一区二区在线观看| 国模少妇一区二区三区| 日本不卡一二三| 日本不卡一二三| 日韩电影在线一区二区| 五月天久久比比资源色| 午夜精品一区在线观看| 亚洲一区二区欧美日韩| 一区二区三区欧美日| 亚洲情趣在线观看| 亚洲精品一二三| 亚洲综合色网站| 亚洲成av人影院| 偷拍一区二区三区| 日韩精品色哟哟| 另类小说色综合网站| 久久99在线观看| 国产一区在线看| 岛国精品一区二区| 99精品国产热久久91蜜凸| 成人av在线一区二区| jizzjizzjizz欧美| 91福利在线看| 欧美精品久久99久久在免费线| 在线不卡一区二区| 久久综合色婷婷| 国产午夜亚洲精品午夜鲁丝片| 国产欧美精品区一区二区三区 | 日韩视频免费观看高清完整版| 日韩一区二区在线观看视频播放| 欧美一区二区三区男人的天堂| 欧美一级日韩免费不卡| 亚洲精品ww久久久久久p站| 亚洲精品国产精华液| 天堂资源在线中文精品| 精品一区二区国语对白| 成人做爰69片免费看网站| 一本色道久久综合亚洲精品按摩| 欧美亚洲愉拍一区二区| 欧美成人女星排名| 日本一区二区三区dvd视频在线 | 午夜久久久久久久久久一区二区| 天堂影院一区二区| 精品一区二区久久久| 91一区在线观看| 欧美一区二区三区公司| 久久久精品黄色| 亚洲小说欧美激情另类| 国模大尺度一区二区三区| 色综合天天天天做夜夜夜夜做| 91国模大尺度私拍在线视频| 日韩免费电影一区| 中文字幕日韩一区二区| 日本亚洲免费观看| 99久久久无码国产精品| 欧美一区二区在线播放| 一区视频在线播放| 美国毛片一区二区| 色欧美88888久久久久久影院| 7799精品视频| 亚洲人快播电影网| 精品制服美女久久| 欧美中文一区二区三区| 久久综合久久鬼色中文字| 亚洲国产视频直播| 成人福利视频在线| 欧美成人伊人久久综合网| 一区二区三区中文在线| 国产成人精品免费一区二区| 欧美日韩国产中文| 国产精品久久精品日日| 国产制服丝袜一区| 亚洲制服欧美中文字幕中文字幕| 久久精品国产99| 欧美亚洲国产bt| 最新热久久免费视频| 精品一区二区三区蜜桃| 欧美日韩性生活| 亚洲精品久久嫩草网站秘色| 国产福利一区二区三区视频在线| 91精品国产综合久久福利| 一区二区三区 在线观看视频| 国产suv精品一区二区6| 日韩欧美成人一区| 日韩av在线免费观看不卡| 欧美亚洲尤物久久| 亚洲日本在线看| 国产成a人亚洲| 久久无码av三级| 久久99精品久久久久久国产越南 | 丝袜脚交一区二区| 欧美综合在线视频| 综合久久给合久久狠狠狠97色| 国产91在线观看丝袜| 久久网这里都是精品| 狠狠色狠狠色合久久伊人| 日韩欧美自拍偷拍| 男人的j进女人的j一区| 日韩片之四级片| 激情综合五月婷婷| 精品免费一区二区三区| 韩国女主播成人在线| 久久综合久久综合久久综合| 加勒比av一区二区| 久久久www成人免费毛片麻豆 | 一区视频在线播放| 91在线码无精品| 亚洲激情图片一区| 欧美在线你懂的| 偷窥少妇高潮呻吟av久久免费| 911精品产国品一二三产区| 天天色图综合网| 日韩一区二区三区视频| 久久精品国产精品亚洲精品 | 国产精品嫩草99a| 成人av网站在线观看免费| 国产精品久久综合| 色哟哟一区二区三区| 亚洲午夜国产一区99re久久| 欧美视频中文字幕| 日本美女一区二区| 久久亚洲欧美国产精品乐播| 国产成人av电影在线| 国产精品成人免费在线| 91久久线看在观草草青青| 午夜精品久久久久久久| 欧美精品一区二区在线播放| 国产传媒日韩欧美成人| 亚洲色图视频网站| 在线电影一区二区三区| 国产在线精品免费av| 亚洲色图视频网站| 欧美一区二区三区四区高清| 国产精品一线二线三线精华| 国产精品久久久久久妇女6080| 色婷婷综合久久久中文一区二区| 日韩二区在线观看| 中文字幕乱码一区二区免费| 欧美日韩精品欧美日韩精品 | 免费成人结看片| 国产精品毛片高清在线完整版|