<?
session_start(); // Session baslatiyoruz
if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
if($_POST['SecInput']==$_SESSION['Sec']){ // 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(); // sessionu siliyoruz
}
}else{ // get ile gelen act verisi esit degilse 'ok' a
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; // $SecCode isimli degisgenimizi Sec isimli sessionumuza esitledik
echo '<b>Guvenlik kodu:</b> '.$SecCode.'<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
}
?>kaynak PHP ile flooda karsi guvenlik kodu yapalim
12
●1.281
- 26-05-2008, 03:34:19basit birsey de olsa ihtiyaciniz olacagini dusunerek anlatayim istedim.
- 26-05-2008, 04:17:38Kimlik doğrulama veya yönetimden onay bekliyor.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.
- 26-05-2008, 05:41:36Rica ederim, seninde soyledigin gibi mantigi anlatmak istedim.AdsenseKolik adlı üyeden alıntı: mesajı görüntüle
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 } ?> - 26-05-2008, 16:22:25ceviz.net te bir kod buldum.resmin üzerine tıklanınca değişiyor.
<?php session_start(); function show_image() { $Rastgele=rand(0,999999999); $Kod=md5($Rastgele); $Guvenlik=substr($Kod,-10); $_SESSION['Guvenlik']=$Guvenlik; $Width=100;$Height=25; $Resim=imagecreate($Width,$Height); $Beyaz=imagecolorallocate($Resim,255,255,255); $Siyah=imagecolorallocate($Resim,0,0,0); imagefill($Resim,0,0,$Siyah); imagestring($Resim,5,5,5,$_SESSION[Guvenlik],$Beyaz); header("Content-Type:image/png"); imagepng($Resim); imagedestroy($Resim); exit; } if (isset($_GET['show_image']) OR isset($_REQUEST['show_image'])) { show_image(); } elseif ($_SERVER['REQUEST_METHOD'] == 'POST') { $code = trim($_POST['code']); $error = false; if (empty($code) OR $code != $_SESSION['Guvenlik']) { $error = true; } else { echo '<script type="text/javascript">alert("Dogru kod.. yonlendirileceksiniz...");</script>'; //header("Location: xxxx.php"); exit; } } echo ' <script type="text/javascript"> function reload () { document.getElementById(\'guvenlikkodu\').src = "'.$_SERVER['SCRIPT_NAME'].'?" + (new Date()).getTime() + "&show_image=1"; return; }; </script> <br><img src="https://www.r10.net/php/'.$_SERVER['SCRIPT_NAME'].'?show_image=1" border="0" id="guvenlikkodu" style="cursor:pointer" onclick="javascript:reload()" alt="okumakta zorluk cekiyorsaniz buraya tiklayin" title="okumakta zorluk cekiyorsaniz buraya tiklayin"><br>'; echo '<form method="POST" action="'.$_SERVER['SCRIPT_NAME'].'"> Guvenlik kodunu girin: <input type="text" name="code" value=""> <input type="submit" value="dogrula"></form>'.($error ? '<br><br><b>Hatali kod.</b>' : ''); ?> - 26-05-2008, 16:34:29Üyeliği durduruldudeğerli Caddeciyiz önce eklediğin konu için teşekkür ederim.
benim 1 haftadan beri bir problemim var, resimli bir captcha'm var ama
if girilen kod != sesion değeri: kod yanlış! bu tarz bir if fonkisyonu var,
ya hiç fonksiyona bakmadan ve formdaki verilere bakmadan hatta formu bile
göndermeden ekrana hemen kod yanlış basıyor.
yada formu her gönderdiğimizde kod yanlış da olsa doğru da olsa her zaman
kod yanlış diyor. if fonksiyonu sesion değerini alamıyor sanırım..
onu nasıl çözebiliriz?? yada msn adresinizi PM gönderirseniz çok daha da fazla memnun olurum. - 26-05-2008, 16:40:13Rica ederim, eger bi mahsuru yoksa kodlari buraya yazin yada bana pm ile yollayin yardimci olmaya calisayim..fruit adlı üyeden alıntı: mesajı görüntüle
- 26-05-2008, 18:43:41Senin dedigin cookie olmasinKingCobra adlı üyeden alıntı: mesajı görüntüle

Ben bilmiyorum $_SESSION'a disardan (kullanici tarafindan) mudahale edildigini, soylede google ebay amazon vs. yerlere flood yapalim heykliyelim
Nasıl olacagını tam anlatmıyım lamerlerin işine yaramasın