Era Captcha – PHP Class

closeBu yazı 5 yıl 9 ay 24 gün önce yayınlanmış olduğundan güncelliğini yitirmiş veya içeriğindeki bilgilerin geçerliliği kaybolmuş olabilir. Herhangi bir yanlış anlaşılmadan bu site sorumlu değildir.
Bu sınıfın ücretli versiyonunu hazırladığım için, bu sınıf ile ilgili dosya paylaşımı yapılmayacak ve destek verilmeyecektir! Anlayışınız için teşekkür ederim.

Bir HTML formunun en vazgeçilmez öğelerinden birtanesi artık CAPTCHA lar. Piyasada çok fazla var biliyorum. Bir çok görevi yapıyorlar, ancak ben kullanımı ve özellikleri sade olan bir captcha aradım durdum hep. Bir tane vardı, nereden bulduysam, onu da Codeigniter a entegre etmeye çalışırken kendimi hatalarla yüzyüze buldum. Oturdum kendi CAPTCHA sınıfımı yazdım.

Kullanımı gayet basit. $font_dir, $bgcolor, $colors , $height, $captcha_level, $captcha_lenght, $session_name, $word_in_question adlı 8 değişkenden meydana geliyor. Herhangi bir boş dosyaya,

<?php
require_once 'captcha.php';

captcha::config('font_dir','fonts');
captcha::config('captcha_level',1);
captcha::config('session_name','era_guvenlik');
captcha::config('captcha_lenght',6);
captcha::config('word_in_question',false);
$c = captcha::getInstance();
$c->start();
$c->create();
?>

şeklinde ekleme yapıyoruz. Burada açıklamak gerekirse, $font_dir font dosyalarımızın olduğu klasördür. Tam yol olarak belirtiyoruz. Eğer içerisinde birden fazla font dosyası varsa, her karakterde farklı font dosyalarını kullanıyor sınıf. fontlar mutlaka .ttf olmalıdır.

$bgcolor arka plan rengidir. Tek renk girilir ve veri mutlaka bir dizi olmalıdır. Renk kodu da RGB formatında olmalıdır. Örneğin;

$bgcolor = array(255,255,255); // beyaz

$color oluşturulacak yazının hangi renklerde olacağını belirler. veri array biçiminde girilmelidir. yine renk kodları RGB formatında olmalıdır.

$height oluşturulan resmin boyutunu pixel cinsinden belirten değişkendir.

$captcha_level oluşturulacak captcha nın hangi türde olacağını belirtir. 2 tür ile oluşturulmuş 3 level vardır. captcha_level i 0 belirlerseniz, o zaman sınıf size sadece belirttiğiniz sayıda karakterden oluşan rasgele bir ifade verecektir. Bu ifade büyük küçük harf duyarlıdır. Eğer level 1 ise, bu durumda sınıf size bir matematiksel ifade soracaktır. toplama çıkarma ve çarpmadan oluşan bir matematiksel işlem sorusu oluşturur. Eğer level 2 ise, level 0 ve 1 in karması şeklinde olacaktır.

$captcha_lenght ise $captcha_level in 0 veya 2 seçildiğinde oluşturulacak rasgele ifadenin kaç karakter olacağını belirler.

$session_name ise, oluşturulan ifadenin SONUCUNUN (özellikle matematiksel ifadelerde sonuç) hangi session değişkenine atanacağını belirler.

$word_in_question ise boolean bir değerdir. sadece True veya False değerini alır. $captcha_level 1 veya 2 de oluşturulacak matematiksel ifadelerde rakam yerine rakamın ingilizce kelimesinin yazılabilmesine olanak sağlar. Türkçe için fontlardan kaynaklı karakter sorunu yaşıyoruz malesef. Türkçe karakter içeren fontlarla da sıkıntı çıktığı için rakamların kelimelerini ingilizce yazdım. Örneğin size şöyle bir soru oluşturur:

3 x nine = ? // sonuç olarak 27 ifadesi doğrulanmalıdır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Güvenlik Kodu * Time limit is exhausted. Please reload CAPTCHA.