February 21, 2008 at 4:56 pm
· Filed under Oda Oyunları
Permalink
February 6, 2008 at 11:36 pm
· Filed under simsnips
Captcha dendimiydi, insanın aklına resim üzerinde yazan anlamlı/anlamsız kelimeyi bir metin kutusuna yazmak geliyor olsa gerek. Aşağıda ki php kodunda ise farklı bir captcha var. Resim üzerinde toplama ya da çarpma işlemi geliyor. Kullanıcı yazacaksa bu işlemin sonucunu yazsın :)
Kodun çalışan örneği http://www.0x35.com/codebox/captcha/captcha.php adresindedir :)
Kullanılan font ise http://www.0x35.com/codebox/captcha/segoe.gdf adresindedir.
/* Eğer kullanacığmız imagegif, imagejpeg, imagepng fonksiyonu
yoksa hiç bir işlem yapmayalım :)
*/
if( !function_exists("imagegif"))
die("GD içinde olması lazım gereken fonksiyon yerinde yok :S");
/* Resmimizin genişliği */
$Width = 200;
/* Resmimizin yüksekliği */
$Height = 40;
/* Karakterler arasındaki boşluk */
$Spacing = 25;
/* Resim içinde görüntüyü karıştırmak için kaç tane çizgi kullanacağız */
$Noise = 20;
/* Eğer PHP içindeki fontlardan birisini kullanmak istemiyorsak
dosya adını buraya yazıyoruz
En sevdiğiniz TrueType Fontu php içinde kullanmak isterseniz
süper bir dönüştürücü www.0x35.com adresinde Alet Hırdavat
bölümünde mevcut :)
*/
$Font_File ="segoe.gdf";
$Img = imagecreate( $Width, $Height );
imagecolorallocate( $Img, 250, 250, 200 );
/* Önce resmin arka tarafına bir iki çizgi atıp karıştıralım */
for( $i = 0; $i < $Noise; $i++ )
{
$Random_Color = rand(150,200);
$Shape_Color = imagecolorallocate($Img , $Random_Color, $Random_Color, $Random_Color );
imageline( $Img,
rand(0,$Width),
rand(0,$Height),
rand(0,$Width),
rand(0,$Height),
$Shape_Color
);
}
/* Nasıl bir işlem yapacağız toplama mı çarpmamı */
$Op = (rand(0,100)%2==0)?'+':'x';
$Number1 = rand(0,50);
$Number2 = rand(0,50);
/* Session_Result değişkeni dogru sonucu tutuyor.
Bu değişkeni kullanarak kullanıcı doğru mu yazmış
yanlış mı yazmış öğrenebiliriz :)
*/
if( $Op == '+' )
$Session_Result = $Number1+$Number2;
else
$Session_Result = $Number1*$Number2;
/* Resmimize yazacağımız işlemimiz */
$Captcha_Text = $Number1.$Op.$Number2;
$Code_Len = strlen( $Captcha_Text );
/* Eğer var ise fontumuzu yükleyelim */
if( !empty($Font_File) )
$Font = imageloadfont( $Font_File );
/* Yazalım çizelim */
for( $i = 0; $i < $Code_Len; $i++)
{
if( empty($Font_File) )
$Font = rand(3,5);
/* Yazacağımız karakter için bir renk belirleyelim */
$Random_Color = rand(0,100);
$Font_Color = imagecolorallocate( $Img, $Random_Color, $Random_Color, $Random_Color );
/* Artık Yazalım */
imagestring( $Img,
$Font,
$Spacing+$i*imagefontwidth($Font),
($Height-imagefontheight($Font))/2,
$Captcha_Text[ $i ],
$Font_Color
);
}
/* Herşey hazır artık tarayıcıya bir resmimiz var diyebiliriz */
header("Content-type: image/gif");
imagegif( $Img );
Permalink
January 27, 2008 at 7:53 pm
· Filed under another-php-library
Dosya upload olayından sonraki rutin kontrol, taşıma vs gibi işleri bir miktar daha hızlandıracağına inandığım AplFileUpload ve onun yavrusu AplImageUpload isminde iki adet sınıfımız oldu.
Güncellemeler svn de :)
Permalink
January 27, 2008 at 5:16 pm
· Filed under Life@RF
Gözde editörümüz Intype windows için TextMate olma yolunda emin adımlarla ilerliyor :)
Yeni neler var?
- Intype artık bir proje yöneticisine sahip :)
- Satır kopyalama yapabiliyor
- Tam ekran çalışabiliyoruz.
- Satırları taşıyabiliyoruz
- Kelime kesme yapabiliyoruz
Buyrun bir deneyin
Permalink
January 26, 2008 at 3:06 am
· Filed under Life@RF
Bu gece hiçbirşey yapmak istemem neticesinde nano ile uğraşayım dedim. Nerden çıktı diye sormayın laf olsun diye :)
Herneyse, siyah üstüne beyaz olan nano'yu biraz renklendireyim istedim.Bir miktar aramadan sonra nano'nun php dosyaları cıvıl cıvıl göstermesini keşfettik :)
öncelik kişisel klasörünüzde ki şu an benim için /home/burak bir adet .nanorc dosyası yaratıyoruz. eğer orada ise açıyoruz
içine de
syntax "php" "\.php[2345s~]?$"
color brightblue start="<\?(php)?" end="\?>"
color blue start="<[^\?]" end="[^\?]>"
color cyan "\$[a-zA-Z_0-9]*"
color cyan "(\[)|(\])"
color red "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color red "="
color green "[,{}()]"
color green "=="
color white "('[^']*')|(\"[^"]*\")"
color yellow start="<!--" end="-->"
color yellow start="/\*" end="\*/"
color yellow start="#" end="$"
yazdıkmıydı, tamamdır
Sonrasında da tab boşluklarını ayarlamak kaldı ki onu da nano'yu çalışıtırırken --tabsize=4 parametresi ekleyerek halletik. Eh şimdilik gayet tatminkar :)
Permalink