Güvenlik Kodu Sınıfı

Sınıf halinde hazırlanmış bir güvenlik kodu kontrolü

Sınıf halinde hazırlanmış bir güvenlik kodu kontrolü

mya1_security.class.php


<?php 

/**

 *

 * +----------------------------------------------------------------------+

 * | Copyright (c) 2004-2006 A1 Trade Network Group                       |

 * +----------------------------------------------------------------------+

 * | Authors: Erdem Yavuz <erdem@a1tradenetwork.com>                      |

 * 

 *

 **/



// ######################    error reporting block    ##########################



    
error_reporting(E_ALL & ~E_NOTICE);



// #############################################################################





define('sec_ses_id','A1TRADE_SECURITY');



class 
securitytext

{

    var 
$en;

    var 
$boy;

    var 
$cizgi true;

    var 
$kare true;

    var 
$image;

    var 
$uzunluk;

    var 
$white = array('r'=>255,'g'=>255,'b'=>255);

    var 
$black = array('r'=>0,'g'=>0,'b'=>0);

    var 
$code;

    var 
$sensitive false;

    var 
$idir='img/';

    var 
$color false;    

    var 
$font = array('a.ttf','b.ttf','c.ttf','d.ttf');



    
/**

     * Enter description here...

     *

     * @param en $arg1

     * @param boy $arg2

     * @param cizgi $arg3

     * @param cizgi $arg4

     * @param kare $arg5

     * @param büyük küçük harf duyarlı $arg6

     * @return securitytext

     */

    
function securitytext($arg1 100$arg2 40$arg3 3$arg4 true$arg5 true ,$arg6 true)

    {

        
$this->en           $arg1;

        
$this->boy          $arg2;

        
$this->uzunluk      intval($arg3);

        
$this->cizgi        $arg4;

        
$this->kare         $arg5;

        
$this->sensitive    $arg6;



        
$this->control();

        return 
$this->bas();

    }



    function 
control()

    {

        if (!
$this->en || !$this->boy)

        {

            exit(
printf("Hatalı Ölçü %s veya %s",$this->en,$this->boy));

        }

    }



    function 
basla()

    {

        
$im imagecreate($this->en$this->boy);

        if (!
$this->kare)

        
imagefilledrectangle($im00$this->en$this->boy$this->mycol($im,true,$this->white));

        
$this->image $im;

    }



    function 
text($im)

    {

                
// Create a list of characters and digits

                
$foo array_merge

                
(

                        
range("0""9"),

                        
range("a""z"),

                        
range("A""Z")

                );

                
// A loop to build the randomized string

                
for ($i;$i<$this->uzunluk;$i++)

                {

                        
$rand_char array_rand($foo);

                        
$string .= $foo[$rand_char];

                }

                
//return($string);



                
$this->code $string;

        if (!
$this->sensitive)

        {

        
$this->code           strtoupper($this->code);

        
$_SESSION[sec_ses_id] = $this->code;

        }

        else {

        
$_SESSION[sec_ses_id] = $this->code;

        }



        
$pr_b = (int) (($this->en/$this->uzunluk)*0.07);

        
$code implode(str_repeat(' ',$pr_b),preg_split('//',$this->code));

        
$renk = ($this->kare)?$this->white:$this->black;



        
imagettftext($im180220,

                    
$this->mycol($im,true,$renk),

                    
$this->font[array_rand($this->font)], $code);



    }



    function 
mycol($src,$stat=false,$col=array())

    {

        
$col = (object) $col;

        if (!
$stat)

        return 
imagecolorallocate($srcrand(90,150),rand(90,150),rand(90,150));

        else

        return 
imagecolorallocate($src$col->r$col->g$col->b);

    }



    function 
kare($im)

    {

        for (
$i=0;$i<10;$i++)

        {

            
imagefilledrectangle($imrand(0,20), rand(0,20),rand(20,100), rand(20,100), $this->mycol($im));

        }

    }



    function 
cizgi($im)

    {

        if (
$this->color)

        {



        
$iRColour['r'] = rand(0255);

        
$iRColour['g'] = rand(0255);

        
$iRColour['b'] = rand(0255);



        }else

        {

        
$color         rand(100,150);

        
$iRColour['r'] = $color;

        
$iRColour['g'] = $color;

        
$iRColour['b'] = $color;

        }

        
$color = array('r'=>$iRColour['r'],'g'=>$iRColour['g'],'b'=>$iRColour['b']);

        for (
$i=10;$i<20;$i++)

        {

         
imageline$im,

                    (
$i*rand(1,20)),

                    (
$i/rand(1,20)),

                    (
$i/rand(1,20)),

                    (
$i*rand(1,20)),

                    
$this->mycol($im,true,$color)

                  );

        }

    }



    function 
header($im)

    {

        
header('Content-type: image/png');

        
imagepng($im);

        
imagedestroy($im);

    }



    function 
bas()

    {

        
$this->basla();

        if (
$this->kare)

        
$this->kare($this->image);

        
$this->text($this->image);

        if (
$this->cizgi)

        
$this->cizgi($this->image);

        
$this->header($this->image);

    }



    function 
cod_control($code,$view=false)

    {

        if ((
trim($code)==$_SESSION[sec_ses_id]))

        {

            if (!
$view)

            unset(
$_SESSION[sec_ses_id]);

            return 
true;

        }else {

            return 
false;

        }

    }

}



/**

 * Aşağıdaki sınıfı çağırırken kullanılan değerler

 * şöyledir.

 * 1. değer yani 100 resmin genişliğini belirler

 * 2. değer yani 25 resmin yüksekliğini belirler

 * 3. değer yani 3 güvenlik kodunun uzunluğunu belirler

 * 4. değer yani true resim içinde çizgiler oluşturur

 * 5. değer yani true resim içinde kareler oluşturur

 * 6. değer yani true oluşan kodu büyük küçük şekilde ayarlar

 */

$sec = new securitytext(10025 3truetruetrue);

?> ?>




control.php
sınıfın kullanımı ve kontrol

<?php 

session_start
();

if (
$_POST)

{

    include 
'mya1_security.class.php';

    if (
securitytext::cod_control($_POST['sec']))

    {

        print 
'dogru';

    }

    else {

        print 
'yanlis';

    }

}

?> ?>




<form enctype="multipart/form-data" method="POST" 

action=" print $_SERVER['PHP_SELF'];?>">

<img src="security.php" border="1" />

<input type="text" name="sec">

<input type="submit" name="submit" value="Gönder">

</form>



Kod dosyalarını ve gerekli yazı tipi dosyalarını dosya linkinden elde edebilirsiniz.
Kaynak dosya rar şifresi : www.sanalkurs.net

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

<img src="security.php" border="1" /> security.php nerde ?
İlk Dosya sence ne?
Derste dosya adı olarak mya1_security.class.php ismi verilmiş, bu nedenle security.php ifadesinin yerine mya1_security.class.php yazılmalı.
çalışmıyor, kaynak dosyayıda indirip denedim ama resim açılmadı? sanırım hata var...

Yukarı Git