Güvenlik Kodu Sınıfı
Yazar:
Erdem Yavuz
Eklenme: 03.11.2007 Okunma: 610
Puan: 3 Seviyesi: Orta
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($im, 0, 0, $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($im, 18, 0, 2, 20,
$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($src, rand(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($im, rand(0,20), rand(0,20),rand(20,100), rand(20,100), $this->mycol($im));
}
}
function cizgi($im)
{
if ($this->color)
{
$iRColour['r'] = rand(0, 255);
$iRColour['g'] = rand(0, 255);
$iRColour['b'] = rand(0, 255);
}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(100, 25 , 3, true, true, true);
?>
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="<?php 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 Kaynak dosyayı indirmek için tıklayın
Değelendirmek için üye girişi yapmanız gerekmektedir
"Güvenlik Kodu Sınıfı" dersi için 2 yorum var
15.05.2008
yunuus diyor ki:
<img src="security.php" border="1" />
security.php nerde ?
19.07.2008
Microsoft diyor ki:
İlk Dosya sence ne?
UYARI: SANALKURS'ta yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. SANALKURS'ta yer alan hiçbir makale, yazarından izinsiz başka bir yerde yayınlanamaz. SANALKURS kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu her türlü fikri eser, fotoğraf, resim vb. materyal ve ürünleri kullanamazlar. SANALKURS kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir. Söz konusu haksız kullanım nedeniyle SANALKURS .NET'in hiçbir hukuki sorumluluğu bulunmamakta olup, haksız kullanım nedeniyle SANALKURS.NET'in üçüncü kişilere ödemek zorunda kalabileceği her türlü tazminat ve/veya adli/idari para cezaları ilgili Sanalkurs kullanıcılarından rücu edilecektir.
İSTATİSTİKLER
ÇEVRİMİÇİ
148 Ziyaretçi, 38 Üye
(1 Gizli)muzy42 , Sakarya-TR , Necati Özden , fatih , vdt , rasitcol , BoganinSifresi , sexyback46 , bylikable , siracel , guccci , bittersweet , yunusqemlik , zozane , webci feride , cybil , perkes , Kömür Prensess , orion06 , nese_55 , xgitarx , Fatih Özel , isikbilgisayar , mahmutkantar , srcn758 , mahperi42 , ilkyaz , ..::TurKuaZ::.. , baturayd , rockfilip , rmznakrs , doğa , mimtek , eliza , marchpilot , Asi Ruh , kalplerinsesi BUGÜN DOĞUM GÜNÜ OLAN ÜYELERİMİZ: Alyyone (22), omer1957 (52), the_manyak (109), sevketkaya (26), Bugün: 820, Dün: 5271, Bu Ay: 96444, Toplam Ziyaret: 1794723, Toplam Üye: 130069, Son Üye: orion06 Toplam Ders: 1980, Toplam Yazar: 44, Toplam Dosya: 34, Toplam Link: 54