AdsenseKolik adlı üyeden alıntı: mesajı görüntüle
teşekkürler bilgi için fakat bu tür kodlar otomatik alınabiliniyor.Yani pek güvenli değiller.Bu yüzden resme yazılan güvenlik kodları kullanılmalı.ama işin mantığını anlamak için iyi bir kod.
Rica ederim, seninde soyledigin gibi mantigi anlatmak istedim.
Ama resimli olsun isteyen arkadaslar asagidakini kullanabilirler..

<?
session_start(); // Session baslatiyoruz
if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
if($_POST['SecInput']==$_SESSION['Sec'] && !$_POST['SecInput']==''){ // post ile gelen SecInput esitse Sec isimli sessionuna
echo 'guvenlik kodu dogru'; // guvenlik kodu dogrudur islemleri burada yapabiliriz
}else{ // SecInput esit degilse Sec isimli sessionuna
echo 'guvenlik kodu yanlis<br><a href='.$_SERVER['HTTP_REFERER'].'>geri</a>';// guvenlik kodu yanlis geri don diyoruz
session_unset(); 
}
}elseif($_GET['s']=='img'){
    $y = 60;
    $g = 20; 
    $code = imagecreate($y, $g); 
    $bgc = imagecolorallocate($code, 0, 0, 0);
    $tc = imagecolorallocate($code, 255, 255, 255);
    imagefill($code, 0, 0, $tc);
    imagestring($code, 3, 10, 3, $_SESSION['Sec'], $bgc);
    header("Content-Type: image/gif"); 
    imagejpeg($code);
    imagedestroy($code);
}
else{
session_unset();// eski session varsa siliyoruz
$SecCode = substr(md5(rand(0,999)),0,6);// guvenlik kodumuzu olusturmak icin 0 ile 999 arasi rastgele sayi olusturduk sayiyi md5 yaptik ve ilk 6 karakterini aldik ve $SecCode degisgenine esitledik
$_SESSION['Sec']=$SecCode;  // Sec isimli sessiona da guvenlik kodumuzu esitledik
echo '<b>Guvenlik kodu:</b> <img src='.$_SERVER['PHP_SELF'].'?s=img><form action="'.$_SERVER['PHP_SELF'].'?act=ok" method="POST"><input type="text" name="SecInput" /><input type="submit" value="OK"></form>'; // ekrana guvenlik formu bastik, guvenlik kodunun yazilacagi inputa SecInput ismini verdik form action POST kullandik
}
?>