Hoşgeldin, Ziyaretçi:

l Üye Ol
Tarih: 19-07-2018, Saat: 22:18
  • Tekno Destek Team'e Hoşgeldiniz
  • Teknoloji, Mobil, Oyun, İnternet, Haber Platforumu
  • Tekno Destek Team ( TDT )
Tekno Destek Team - Teknoloji, Mobil, Oyun, İnternet, Haber Platforumu > Bilgi Teknolojileri / Information Technologies > Web Programlama > GÜVENLIK KODU (CAPTCHA) OLUŞTURMA SINIFI >

 Yorum: 0    Görüntülenme: 444
Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
 GÜVENLIK KODU (CAPTCHA) OLUŞTURMA SINIFI
04-01-2016, Saat: 00:31,
Çevrimdışı
Süper Moderatör
Süper Moderatör Grubu
Üyelik Tarihi: 02-01-2016
Mesajlar : 391
Konular:
Rep Puanı: 0
#1
GÜVENLIK KODU (CAPTCHA) OLUŞTURMA SINIFI

class Captcha
{
    protected $value;
    protected $image_name;
 
    public function __construct( $image_name )
    {
        $this->image_name = $image_name;
    }
 
    public static function createNumber( $length = 4 )
    {
        $num = "";
        for ( $i = 0; $i < $length; $i++ )
        {
            $r = mt_rand( 0, 9 );
            $num = $num.$r;
        }
        return $num;
    }
 
    public static function createString( $length = 4 )
    {
        $val = "";
        $values = "abcdefghijklmnopqrstuvwyz";
        for ( $i = 0; $i < $length; $i++ )
        {
            $r = mt_rand( 0, 24 );
            $val = $val.$values[$r];
        }
        return $val;        
    }
 
    public function setValue( $value )
    {
        $this->value = $value;
    }
 
    public function getValue( )
    {
        return $this->value;
    }
 
    public function showImage( $channel = null )
    {
        $im = imageCreate( 160, 60 );
        $white = imagecolorallocate( $im, 255, 255, 255 );
        $black = imagecolorallocate( $im, 0, 0, 0 );
 
        $intensity = rand ( 200, 230 );
 
        if ( !$channel )
        {
            $channel = rand ( 1, 3 );
        }
        $ratio = rand ( 80, 100 );
 
        switch ( $channel )
        {
                case 1:
                        $colorBgR = $intensity * $ratio / 100;
                        $colorBgG = $intensity * ( 100 - $ratio ) / 100;
                        $colorBgB = 0;
 
                        for ( $i = 0; $i < 5; $i++ )
                        {
                                $shift = rand( 100 - ( $i+1)*3, 100 + ( $i+1)*3 );
                                $new = $shift * $colorBgR / 100;    
 
                                $bgColors[] = iMagecolorallocate( $im, $new, $intensity-$new, 0 );
                        }
 
                        for ( $i = 0; $i < 3; $i++ )
                        {
                                $shift = rand( 100 - ( $i+1)*7, 100 + ( $i+1)*7 );
                                $new = $shift * $colorBgR / 100;    
 
                                $bgColors[] = iMagecolorallocate( $im, $intensity-$new, $new, 0 );
                        }
                break;
 
                case 2:
                        $colorBgG = $intensity * $ratio / 100;
                        $colorBgB = $intensity * ( 100 - $ratio ) / 100;
                        $colorBgR = 0;
 
                        for ( $i = 0; $i < 5; $i++ )
                        {
                                $shift = rand( 100 - ( $i+1)*3, 100 + ($i+1)*3 );
                                $new = $shift * $colorBgR / 100;    
 
                                $bgColors[] = iMagecolorallocate( $im, 0, $new, $intensity-$new );
                        }
 
                        for ( $i = 0; $i < 3; $i++ )
                        {
                                $shift = rand( 100 - ( $i+1)*7, 100 + ( $i+1)*7 );
                                $new = $shift * $colorBgR / 100;    
 
                                $bgColors[] = iMagecolorallocate( $im, 0 , $intensity-$new, $new );
                        }
 
                case 3:
                        $colorBgB = $intensity * $ratio / 100;
                        $colorBgR = $intensity * ( 100 - $ratio ) / 100;
                        $colorBgG = 0;
 
                        for ( $i = 0; $i < 5; $i++ )
                        {
                                $shift = rand( 100 - ( $i+1)*3, 100 + ( $i+1)*3 );
                                $new = $shift * $colorBgR / 100;    
 
                                $bgColors[] = iMagecolorallocate( $im, $intensity-$new, 0, $new );
                        }
 
                        for ( $i = 0; $i < 3; $i++ )
                        {
                            // to make it harder do symmetric range ^^ 
                                $shift = rand( 100 , 100 + ( $i+1)*20 );
                                $new = $shift * $colorBgR / 100;    
 
                                $bgColors[] = iMagecolorallocate( $im, $new , 0, $intensity-$new );
                        }
                break;
        }
 
 
 
 
        $bgColor = imagecolorallocate( $im, $colorBgR, $colorBgG, $colorBgB );
 
 
        for ( $i = 0; $i < strlen( $this->value ); $i++ )
        {
            $rotate = rand(-15, 15);
 
            $fontSize = rand(28, 36);
            imagettftext($im, $fontSize ,$rotate , 10+$i*31, 50, $black, "impact.ttf",$this->value[$i] ); 
        }
 
 
 
 
        for ( $i = 0; $i < 160; $i++ )
        {
                for ( $j = 0; $j  < 60; $j++ )
                {
                        $pos = rand( 0, 7 );
 
                        if ( imagecolorat( $im, $i, $j ) == $black )
                        {
                                $pos = rand( 6, 7 );
 
 
 
                                imagesetpixel( $im, $i, $j, $bgColors[$pos] );
                        }
                        else
                        {
                                imagesetpixel( $im, $i, $j, $bgColors[$pos] );
                        }
                }
        }
 
        imagejpeg( $im, "images/".$this->image_name.".jpg" );
        imagedestroy( $im );
        echo" <img src='/images/".$this->image_name.".jpg' style='border: 1px solid #000;' width='160' >";
    }
}
 
04-01-2016, Saat: 00:31
Cevapla



« Önceki Konu | Sonraki Konu »
Konuyu Okuyanlar: 1 Ziyaretçi



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Sürekli Değişen Arka Plan Kodu kara_kutu 0 526 05-02-2016, Saat: 10:57
Son Yorum: kara_kutu
  PHP Ile Veritabanında Tablo Oluşturma kara_kutu 0 508 05-02-2016, Saat: 10:49
Son Yorum: kara_kutu
  MYSQL VERITABANI BAĞLANTISI SINIFI kara_kutu 0 442 04-01-2016, Saat: 00:38
Son Yorum: kara_kutu
  PHP DE DIZIN OLUŞTURMA kara_kutu 0 376 04-01-2016, Saat: 00:04
Son Yorum: kara_kutu
  PHP DE DOSYALAR OLUŞTURMA VE SILME kara_kutu 0 402 03-01-2016, Saat: 23:58
Son Yorum: kara_kutu

Hızlı Menü:

Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB
© 2002-2018 MyBB Group.
Tasarım Tekno Destek Team © 2018