• اطلاعیه ها

    • Saeed Fard

      برگزاری چهارمین همایش Coder Conf و کد تخفیف برای کاربران وردپرس پارسی   20/04/97

      کدرکانف هر سال در آخرین پنجشنبه مرداد با بورد‌های مختلفی برگزار می‌گردد،امسال نیز کدرکانف در همین تاریخ با حضور برنامه نویسان مطرح کشور در بورد تخصصی جاوااسکریپت برگزار خواهد شد، یک گردهمایی متفاوت با طعم Javascript. Coderconf هر سال نسبت به سال‌های گذشته با حضور برنامه‌نویسان پر رنگتر می‌شود. ما سعی کردیم هر ساله به این کنفرانس مفهوم عمیق تری ببخشیم تا از آنچه در سال‌های گذشته عرضه شده به روزتر و مفیدتر واقع شویم. امسال فرصتی خواهد بود تا با نگرشی جدید و بهبود مطالب ارائه شده، عمیقتر به این موضوع نگاه کنیم تا بجای تکرار مباحث پیشین گامی هر چند کوچک در مسیر ارتقای دانش فنی برنامه‌نویسان ایرانی برداریم. ما در Coderconf ۴ با تمرکز بر روی Javascript نیت کرده‌ایم این فرصت را در اختیار برنامه نویسان قرار دهیم تا با ظرافت و استانداردهای روز دنیا کار خود را پیش ببرند. به نظر ما امسال زمان آن فرا رسیده‌است تا این زبان را به صورت تخصصی و از ابعاد مختلف به چالش بکشیم.   دبیر علمی همایش میلاد حیدری، کدرکانف ۴ را اینگونه توصیف کرده است :اشتراک گذاری دانش بهترین راه رسیدن به جاودانگی اطلاعات است. هر ساله همایش‌های زیادی برگزار میشه که افراد شرکت‌کننده می‌توانند با افراد مجرب شبکه سازی کنند. امسال در کدرکانف سعی کردیم علاوه بر بخش شبکه سازی بین افراد بیشتر روی انتقال دانش و کیفیت ارائه ها تمرکز داشته باشیم . به قصد یک گردهمایی بلند مدت بین برنامه‌نویسان جاوااسکریپت که با هم تبادل دانش و اطلاعات کنند گردهم آییم.
      بنده به عنوان عضو کوچکی از جامعه برنامه‌نویسان جاوااسکریپت ایران امیدوارم در کدرکانف امسال علاوه بر شبکه سازی، از اطلاعاتی که دوستان در این همایش در اختیارتان قرار می‌دهند استفاده کنید. در سایت همایش میتوانید سخنرانان و موضوع پنل همایش کدرکانف رو مشاهده کنید . علاقه‌مندان به حضور در این همایش می‌توانند با کد تخفیف wpparsi اقدام به ثبت نام در این گردهمایی کنند. سایت همایش :‌http://coderconf.org
      بلیط فروشی همایش :‌https://evand.com/events/coderconf4  
ilya20

نیاز به دستور کپچا بدون افزونه

6 پست در این موضوع قرار دارد

سلام و درود خدمت عزیزان 

در صورت امکان کد کپچا برای وردپرس بدون نیاز به افزونه برامون بذارید. (کپچای عدد با حروف باشه چه بهتر)

 

0

به اشتراک گذاری این پست


لینک به پست

این کلاس کپچا هست که خودم نوشتم و استفاده میکنم

<?php

/**
 * @author lord_viper
 * @copyright 2013
 */

class bn_captcha
{
    private $font_size    = 5;
    private $fontfilename = '';
    private $bg_color     = array(255,255,255);
    private $text_color   = array(0,0,0);
    private $line         = 0;
    private $noise        = 0;
    private $elipse       = 0;
    private $elfill       = false;
    private $text         = '';
    private $img;
    protected static $instance;

    function __construct()
    {
        if (session_status() == PHP_SESSION_NONE)
        //if (!isset($_SESSION))
        session_start();
    }

    public static function instance()
    {
        if(!isset(self::$instance))
        self::$instance = new self();

        return self::$instance;
    }
    
    private function RandomString($length = 10, $type = 'char',$repeat=2)
    {
        $Special = '!@#$%^&*()-_ []{}<>~+=,.;:/?|';
        $number  = '0123456789';
        $chars   = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        switch($type)
        {
            case 'all' :$str = $Special.$number.$chars;break;
            case 'char':$str = $chars;break;
            case 'num' :$str = $number;break;
            default    :$str = $chars.$number;
        }
        return substr(str_shuffle(str_repeat($str,$repeat)),0,$length);
    }
    
    public function line($count)
    {
        $this->line = $count;
        return $this;
    }
    
    public function noise($count)
    {
        $this->noise = $count;
        return $this;
    }
    
    public function font($fontname,$fontsize)
    {
        $this->fontfilename = $fontname;
        $this->font_size    = $fontsize;
        return $this;
    }
    
    public function ellipse($count,$fill=false)
    {
        $this->elipse = $count;
        $this->elfill = $fill;
        return $this;
    }
    
    public function text($text='')
    {
        $this->text = $text;
        return $this;
    }
    
    public function show($text_count=5,$text_type='all',$bgcolor='#000',$txtcolor='#FFFFFF',$echo=true)
    {
        if(empty($this->text)){
            $this->text    = self::RandomString($text_count,$text_type);
            $_SESSION['__captcha'] = strtolower($this->text);
            $this->text    = wordwrap($this->text,1,' ',true) ;
        }
        $size = self::get_img_size();
        $this->img = imagecreatetruecolor($size['width'],$size['height']);
        self::draw_ellipse($size);
        self::draw_line($size);
        imagefill($this->img,0,0,hexdec($bgcolor));
        if(empty($this->fontfilename))
            imagestring($this->img,5,10,rand(5,15),$this->text,hexdec($txtcolor));
        else
            imagettftext($this->img,$this->font_size,0,10,rand($size['height']-15,$size['height']-5),hexdec($txtcolor),$this->fontfilename,$this->text);
        self::draw_noise($size);
        ob_start();    
        ImagePng($this->img);
        $img = base64_encode(ob_get_clean());
        if($echo)
        echo "<img src='data:image/jpeg;base64,$img' />";
        else
        return "<img src='data:image/jpeg;base64,$img' />";
    }
    
    public function check_captcha($post)
    {
        return ($post==$_SESSION['__captcha']?true:false);
    }
//______________________________________________________________________________________________________________________________    
    private function get_img_size()
    {
        $ret = array();
        if(empty($this->fontfilename)){
            $w    = imagefontwidth($this->font_size);
            $h    = imagefontheight($this->font_size);
            $ret['width'] = ($w * strlen($this->text)) + 20;
            $ret['height'] = $h + 20;
        }else{
            $siz = imagettfbbox($this->font_size,0,$this->fontfilename,$this->text);
            $ret['width'] = $siz[4]+20;
            $ret['height'] = abs($siz[7])+20;                      
        }
        return $ret;
    }
    
    private function draw_line($size)
    {
        if($this->line>0){
            $width  = $size['width'];
            $height = $size['height'];
            $minwidth = intval($size['width'] / 4);
            for ($i = 0; $i <= $this->line; $i++){
                imageline($this->img, rand(1, $minwidth), rand(1, $height), rand($width - $minwidth,$width),
                rand(1, $height), rand(1,16000000));
            }
        }
    }
    
    private function draw_noise($size)
    {
        if($this->noise>0){
            $width  = $size['width'];
            $height = $size['height'];
            for ($i = 0; $i <= $this->noise; $i++){
                imagesetpixel($this->img, rand(1, $width), rand(1, $height), rand(1,16000000));
            }
        }
    }
    
    private function draw_ellipse($size)
    {
        if($this->elipse>0){
            $width  = $size['width'];
            $height = $size['height'];
            for ($i = 0; $i < $this->elipse; $i++){
                $cx = (int)rand(15, $width - 5);
                $cy = (int)rand(15, $height - 5);
                $h  = rand(1, 30);
                $w  = rand(1, 30);
                if ($this->elfill)
                    imagefilledellipse($this->img, $cx, $cy, $w, $h,rand(1,16000000));
                else
                    imageellipse($this->img, $cx, $cy, $w, $h,rand(1,16000000));
            }             
        }       
    }
}
?>

برای استفاده به صورت زیر عمل کنید

 

$cap = new bn_captcha;

//check kardan captcha
//$_POST['captcha'] مقدار input کد امنیتی هست name=captcha
if($cap->check_captcha($_POST['captcha']))
echo 'captcha is true';
else
echo 'captcha is false';

//ایجاد کپچا فقط عدد 6 کاراکتر
echo $cap->show(6,'num');
//ایجاد کپچا عدد - حروف - سیمبل 6 کاراکتر
echo $cap->show(6,'all');
// ایجاد کپچت فقط حروف 6 کاراکتر پس زمینه مشکی رنگ حروف سفی
echo $cap->show(6,'char','#000','#FFF');

 

4

به اشتراک گذاری این پست


لینک به پست

ممنونم از شما 

 

دستور بالایی برای function هست دستور پایی برای single? 

 

یکم روشن کنید 

سپاس

0

به اشتراک گذاری این پست


لینک به پست

استاد عزیز میتونید جزئیات استفاده از کد رو بفرمایید

0

به اشتراک گذاری این پست


لینک به پست
در در 8/8/2017 at 13:02، lord_viper گفته است :

این کلاس کپچا هست که خودم نوشتم و استفاده میکنم


<?php

/**
 * @author lord_viper
 * @copyright 2013
 */

class bn_captcha
{
    private $font_size    = 5;
    private $fontfilename = '';
    private $bg_color     = array(255,255,255);
    private $text_color   = array(0,0,0);
    private $line         = 0;
    private $noise        = 0;
    private $elipse       = 0;
    private $elfill       = false;
    private $text         = '';
    private $img;
    protected static $instance;

    function __construct()
    {
        if (session_status() == PHP_SESSION_NONE)
        //if (!isset($_SESSION))
        session_start();
    }

    public static function instance()
    {
        if(!isset(self::$instance))
        self::$instance = new self();

        return self::$instance;
    }
    
    private function RandomString($length = 10, $type = 'char',$repeat=2)
    {
        $Special = '!@#$%^&*()-_ []{}<>~+=,.;:/?|';
        $number  = '0123456789';
        $chars   = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        switch($type)
        {
            case 'all' :$str = $Special.$number.$chars;break;
            case 'char':$str = $chars;break;
            case 'num' :$str = $number;break;
            default    :$str = $chars.$number;
        }
        return substr(str_shuffle(str_repeat($str,$repeat)),0,$length);
    }
    
    public function line($count)
    {
        $this->line = $count;
        return $this;
    }
    
    public function noise($count)
    {
        $this->noise = $count;
        return $this;
    }
    
    public function font($fontname,$fontsize)
    {
        $this->fontfilename = $fontname;
        $this->font_size    = $fontsize;
        return $this;
    }
    
    public function ellipse($count,$fill=false)
    {
        $this->elipse = $count;
        $this->elfill = $fill;
        return $this;
    }
    
    public function text($text='')
    {
        $this->text = $text;
        return $this;
    }
    
    public function show($text_count=5,$text_type='all',$bgcolor='#000',$txtcolor='#FFFFFF',$echo=true)
    {
        if(empty($this->text)){
            $this->text    = self::RandomString($text_count,$text_type);
            $_SESSION['__captcha'] = strtolower($this->text);
            $this->text    = wordwrap($this->text,1,' ',true) ;
        }
        $size = self::get_img_size();
        $this->img = imagecreatetruecolor($size['width'],$size['height']);
        self::draw_ellipse($size);
        self::draw_line($size);
        imagefill($this->img,0,0,hexdec($bgcolor));
        if(empty($this->fontfilename))
            imagestring($this->img,5,10,rand(5,15),$this->text,hexdec($txtcolor));
        else
            imagettftext($this->img,$this->font_size,0,10,rand($size['height']-15,$size['height']-5),hexdec($txtcolor),$this->fontfilename,$this->text);
        self::draw_noise($size);
        ob_start();    
        ImagePng($this->img);
        $img = base64_encode(ob_get_clean());
        if($echo)
        echo "<img src='data:image/jpeg;base64,$img' />";
        else
        return "<img src='data:image/jpeg;base64,$img' />";
    }
    
    public function check_captcha($post)
    {
        return ($post==$_SESSION['__captcha']?true:false);
    }
//______________________________________________________________________________________________________________________________    
    private function get_img_size()
    {
        $ret = array();
        if(empty($this->fontfilename)){
            $w    = imagefontwidth($this->font_size);
            $h    = imagefontheight($this->font_size);
            $ret['width'] = ($w * strlen($this->text)) + 20;
            $ret['height'] = $h + 20;
        }else{
            $siz = imagettfbbox($this->font_size,0,$this->fontfilename,$this->text);
            $ret['width'] = $siz[4]+20;
            $ret['height'] = abs($siz[7])+20;                      
        }
        return $ret;
    }
    
    private function draw_line($size)
    {
        if($this->line>0){
            $width  = $size['width'];
            $height = $size['height'];
            $minwidth = intval($size['width'] / 4);
            for ($i = 0; $i <= $this->line; $i++){
                imageline($this->img, rand(1, $minwidth), rand(1, $height), rand($width - $minwidth,$width),
                rand(1, $height), rand(1,16000000));
            }
        }
    }
    
    private function draw_noise($size)
    {
        if($this->noise>0){
            $width  = $size['width'];
            $height = $size['height'];
            for ($i = 0; $i <= $this->noise; $i++){
                imagesetpixel($this->img, rand(1, $width), rand(1, $height), rand(1,16000000));
            }
        }
    }
    
    private function draw_ellipse($size)
    {
        if($this->elipse>0){
            $width  = $size['width'];
            $height = $size['height'];
            for ($i = 0; $i < $this->elipse; $i++){
                $cx = (int)rand(15, $width - 5);
                $cy = (int)rand(15, $height - 5);
                $h  = rand(1, 30);
                $w  = rand(1, 30);
                if ($this->elfill)
                    imagefilledellipse($this->img, $cx, $cy, $w, $h,rand(1,16000000));
                else
                    imageellipse($this->img, $cx, $cy, $w, $h,rand(1,16000000));
            }             
        }       
    }
}
?>

برای استفاده به صورت زیر عمل کنید

 


$cap = new bn_captcha;

//check kardan captcha
//$_POST['captcha'] مقدار input کد امنیتی هست name=captcha
if($cap->check_captcha($_POST['captcha']))
echo 'captcha is true';
else
echo 'captcha is false';

//ایجاد کپچا فقط عدد 6 کاراکتر
echo $cap->show(6,'num');
//ایجاد کپچا عدد - حروف - سیمبل 6 کاراکتر
echo $cap->show(6,'all');
// ایجاد کپچت فقط حروف 6 کاراکتر پس زمینه مشکی رنگ حروف سفی
echo $cap->show(6,'char','#000','#FFF');

 

سلام لرد عزیز مرسی که دانسته هاتو به اشتراک قرار دادی 

فقط ببخشید این قضیه استفادشو یه توضیح کوچولو بدی ممنون میشم چون یکم گیج کنندس

0

به اشتراک گذاری این پست


لینک به پست
در در 8/8/2017 at 01:32، lord_viper گفته است :

این کلاس کپچا هست که خودم نوشتم و استفاده میکنم


<?php

/**
 * @author lord_viper
 * @copyright 2013
 */

class bn_captcha
{
    private $font_size    = 5;
    private $fontfilename = '';
    private $bg_color     = array(255,255,255);
    private $text_color   = array(0,0,0);
    private $line         = 0;
    private $noise        = 0;
    private $elipse       = 0;
    private $elfill       = false;
    private $text         = '';
    private $img;
    protected static $instance;

    function __construct()
    {
        if (session_status() == PHP_SESSION_NONE)
        //if (!isset($_SESSION))
        session_start();
    }

    public static function instance()
    {
        if(!isset(self::$instance))
        self::$instance = new self();

        return self::$instance;
    }
    
    private function RandomString($length = 10, $type = 'char',$repeat=2)
    {
        $Special = '!@#$%^&*()-_ []{}<>~+=,.;:/?|';
        $number  = '0123456789';
        $chars   = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        switch($type)
        {
            case 'all' :$str = $Special.$number.$chars;break;
            case 'char':$str = $chars;break;
            case 'num' :$str = $number;break;
            default    :$str = $chars.$number;
        }
        return substr(str_shuffle(str_repeat($str,$repeat)),0,$length);
    }
    
    public function line($count)
    {
        $this->line = $count;
        return $this;
    }
    
    public function noise($count)
    {
        $this->noise = $count;
        return $this;
    }
    
    public function font($fontname,$fontsize)
    {
        $this->fontfilename = $fontname;
        $this->font_size    = $fontsize;
        return $this;
    }
    
    public function ellipse($count,$fill=false)
    {
        $this->elipse = $count;
        $this->elfill = $fill;
        return $this;
    }
    
    public function text($text='')
    {
        $this->text = $text;
        return $this;
    }
    
    public function show($text_count=5,$text_type='all',$bgcolor='#000',$txtcolor='#FFFFFF',$echo=true)
    {
        if(empty($this->text)){
            $this->text    = self::RandomString($text_count,$text_type);
            $_SESSION['__captcha'] = strtolower($this->text);
            $this->text    = wordwrap($this->text,1,' ',true) ;
        }
        $size = self::get_img_size();
        $this->img = imagecreatetruecolor($size['width'],$size['height']);
        self::draw_ellipse($size);
        self::draw_line($size);
        imagefill($this->img,0,0,hexdec($bgcolor));
        if(empty($this->fontfilename))
            imagestring($this->img,5,10,rand(5,15),$this->text,hexdec($txtcolor));
        else
            imagettftext($this->img,$this->font_size,0,10,rand($size['height']-15,$size['height']-5),hexdec($txtcolor),$this->fontfilename,$this->text);
        self::draw_noise($size);
        ob_start();    
        ImagePng($this->img);
        $img = base64_encode(ob_get_clean());
        if($echo)
        echo "<img src='data:image/jpeg;base64,$img' />";
        else
        return "<img src='data:image/jpeg;base64,$img' />";
    }
    
    public function check_captcha($post)
    {
        return ($post==$_SESSION['__captcha']?true:false);
    }
//______________________________________________________________________________________________________________________________    
    private function get_img_size()
    {
        $ret = array();
        if(empty($this->fontfilename)){
            $w    = imagefontwidth($this->font_size);
            $h    = imagefontheight($this->font_size);
            $ret['width'] = ($w * strlen($this->text)) + 20;
            $ret['height'] = $h + 20;
        }else{
            $siz = imagettfbbox($this->font_size,0,$this->fontfilename,$this->text);
            $ret['width'] = $siz[4]+20;
            $ret['height'] = abs($siz[7])+20;                      
        }
        return $ret;
    }
    
    private function draw_line($size)
    {
        if($this->line>0){
            $width  = $size['width'];
            $height = $size['height'];
            $minwidth = intval($size['width'] / 4);
            for ($i = 0; $i <= $this->line; $i++){
                imageline($this->img, rand(1, $minwidth), rand(1, $height), rand($width - $minwidth,$width),
                rand(1, $height), rand(1,16000000));
            }
        }
    }
    
    private function draw_noise($size)
    {
        if($this->noise>0){
            $width  = $size['width'];
            $height = $size['height'];
            for ($i = 0; $i <= $this->noise; $i++){
                imagesetpixel($this->img, rand(1, $width), rand(1, $height), rand(1,16000000));
            }
        }
    }
    
    private function draw_ellipse($size)
    {
        if($this->elipse>0){
            $width  = $size['width'];
            $height = $size['height'];
            for ($i = 0; $i < $this->elipse; $i++){
                $cx = (int)rand(15, $width - 5);
                $cy = (int)rand(15, $height - 5);
                $h  = rand(1, 30);
                $w  = rand(1, 30);
                if ($this->elfill)
                    imagefilledellipse($this->img, $cx, $cy, $w, $h,rand(1,16000000));
                else
                    imageellipse($this->img, $cx, $cy, $w, $h,rand(1,16000000));
            }             
        }       
    }
}
?>

برای استفاده به صورت زیر عمل کنید

 


$cap = new bn_captcha;

//check kardan captcha
//$_POST['captcha'] مقدار input کد امنیتی هست name=captcha
if($cap->check_captcha($_POST['captcha']))
echo 'captcha is true';
else
echo 'captcha is false';

//ایجاد کپچا فقط عدد 6 کاراکتر
echo $cap->show(6,'num');
//ایجاد کپچا عدد - حروف - سیمبل 6 کاراکتر
echo $cap->show(6,'all');
// ایجاد کپچت فقط حروف 6 کاراکتر پس زمینه مشکی رنگ حروف سفی
echo $cap->show(6,'char','#000','#FFF');

 

کد اول در function.php قرار دهید .

و کد دوم در هر صفحه ی که می خواهید کد کپچا نمایش دهد قرار دهید.

به عنوان مثال برای نمایش در صفحه  دلخواه فقط کافیه :

$cap = new bn_captcha;
echo $cap->show();

به همین سادگی  کد کپچا نمایش داده خواهد شد.

حال اگر با جزئیات بیشتر مد نظر هست می تونید از کد پایین استفاده کنید.

$cap = new bn_captcha;

//check kardan captcha
//$_POST['captcha'] مقدار input کد امنیتی هست name=captcha
if($cap->check_captcha($_POST['captcha']))
echo 'captcha is true';
else
echo 'captcha is false';

//ایجاد کپچا فقط عدد 6 کاراکتر
echo $cap->show(6,'num');
//ایجاد کپچا عدد - حروف - سیمبل 6 کاراکتر
echo $cap->show(6,'all');
// ایجاد کپچت فقط حروف 6 کاراکتر پس زمینه مشکی رنگ حروف سفی
echo $cap->show(6,'char','#000','#FFF');

 

ویرایش شده در توسط Mirrajabi
2

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری