Tekil Mesaj gösterimi
Alt 27 Nisan 2012, 20:29   #1
Çevrimdışı
MorfiN
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
PHP’de Resim Doğrulama - Güvenlik Kodu




Son yıllarda üyelik formlarında, üyelik giriş sayfalarında, whois sorgularında, sipariş formlarında . Vs form işleminin gerçekleştiği tüm platformlarda güvenlik kodu / resim doğrulama işlemine rastlamış olmalısınız. Spam botları ve saldırılar gibi sebeplere ayrılsada temel amaç kötü niyetli kullanıcılar/kişilerden korunmada ek bir önlem daha almaktır. Animated Captcha (Hareketli resim doğrulama ) yazısından sonra gelen talep üzerine bilinen resim doğrulama uygulamasına bir örnek sunma gereği gündeme geldi. Örneklemenin daha net anlaşılması için resmi oluşturma, form doldurma ve sonuç basma sayfaları ayrı yapılmıştır. Bu örneği sitenizde çalıştırmak için GD desteğinizin olması gerekmektedir. phpinfo() çıktısında görebilirsiniz. Konsol erişimi olan arkadaşlar php -m komutunu uygulayarak GD modulu kontrol edebilirler


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Öncelikle Form Sayfası : index.php
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<!-- Tarayıcı ön belleğinde tutulmaması için no-cache -->
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//TR" "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">>
<
html xmlns="
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #0000BB">xml
:lang="TR" lang="tr">
<
meta http-equiv="Pragma" content="no-cache" />
<
meta http-equiv="Expires" content="-1" />
<
title>wmturk.net Resim doğrulama uygulamasına ait demo</title>
 
<
form method="post" action="sonuc.php"Dogrulama Kodu: <img src="img.php" height="25" width="75" />Doğrulama Kodunu Giriniz: <input size="6" maxlength="6" name="kod" type="text" />
 
<
input value="Test et" type="submit" />
</
form>
</
body>
</
html

Resim Oluşturma Sayfası: img.php

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<?
session_start
();
/* Olusturulan kodu diger sayfalara tasiyabilmemiz icin oturum baslatiyoruz.
0-999 araliginda bir sayi olusturup bunu md5 ile sifreliyoruz.
*/
$md5yap=md5(rand(0,9999));
 
//md5 ile sifrelenen sayimizin uzunlugu 32 karakter olacaktir. Biz 6 karakterli alacagiz.
$dogrulamakodu strtoupper(substr($md5yap86));
 
//Dogrulama icin kullanicak kodumuzu acilan oturuma kaydediyoruz.
$_SESSION["dogrulamakodu"] = $dogrulamakodu;
 
//Resim boyutlari belirleniyor
$en 75;
$boy 25;
 
//Uzerinde calisacagimiz resim olusturuluyor.
$image ImageCreate($en$boy);
 
//Beyaz,Siyah ve Kirmizi renkler olusturuyoruz. Rakamlar renkleri ifade etmektedir.
$beyaz ImageColorAllocate($image255255255);
$siyah ImageColorAllocate($image000);
$kirmizi ImageColorAllocate($image24200);
 
//Arka plani beyaz yapiyoruz
ImageFill($image00$beyaz);
 
//Olusturulan dogrulama kodunu resime yaziyoruz.
ImageString($image695$_SESSION["dogrulamakodu"], $siyah);
 
//Gorunumu biraz karistirmak icin cizgilerle gorunumu zorlastiriyoruz.
//Dilerseniz imageline() satirlarini kaldirarak cizgileri yok edebilirsiniz.
imageline($image02$en2$kirmizi);
imageline($image025$boy0$kirmizi);
imageline($image$en$boy400$kirmizi);
imageline($image023$en23$kirmizi);
 
// Tarayiciya dosyamizin tipini yolluyoruz.
header("Content-Type: image/jpeg");
 
//Resmimizi Jpg formatinda basiyoruz.
ImageJpeg($image);
 
//Bir kereye mahsus kullanacagimiz icin siliyoruz.
ImageDestroy($image);
exit();

?>

Sonuç Sayfası: sonuc.php

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<?
session_start
();
// Eger form doldurulmussa
if( isset($_POST['kod']) ){
if( 
strtoupper($_POST['kod']) == $_SESSION['dogrulamakodu'] ){
echo 
'
<h4>Tebrikler, Doğru kodu girdiniz: <code>'
.$_POST['kod'].'</code></h4>';
}else{
echo 
'<h4><code>'.$_POST['kod'].'</code>Hatali giris, tekrar deneyiniz. '.$_SESSION['dogrulamakodu'].'</h4>';
}
echo 
'<a href="index.php">Tekrar _fcksavedurl=""index.php">Tekrar" _fcksavedurl=""index.php">Tekrar" dene?</a>';
} else {
?>
<a href="index.php">Sadece post verileri ile calisan bir sayfadir. Giris sayfasina donebilirsiniz.?</a>
<?}?>


__________________

Kullanıcı imzalarındaki bağlantı ve resimleri görebilmek için en az 20 mesaja sahip olmanız gerekir ya da üye girişi yapmanız gerekir.
 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet