• 26-05-2008, 03:34:19
    #1
    basit birsey de olsa ihtiyaciniz olacagini dusunerek anlatayim istedim.
    <?
    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
  • 26-05-2008, 04:17:38
    #2
    Kimlik 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:36
    #3
    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
    }
    ?>
  • 26-05-2008, 14:27:51
    #4
    Teşekkürler benim de işime yaradı.
  • 26-05-2008, 16:22:25
    #5
    ceviz.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
    #6
    Üyeliği durduruldu
    değ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:13
    #7
    fruit adlı üyeden alıntı: mesajı görüntüle
    değ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.
    Rica ederim, eger bi mahsuru yoksa kodlari buraya yazin yada bana pm ile yollayin yardimci olmaya calisayim..
  • 26-05-2008, 18:07:05
    #8
    resimlerdede $_SESSION[Guvenlik] kodunu alıp yine flood yapılabilir Nasıl olacagını tam anlatmıyım lamerlerin işine yaramasın
  • 26-05-2008, 18:43:41
    #9
    KingCobra adlı üyeden alıntı: mesajı görüntüle
    resimlerdede $_SESSION[Guvenlik] kodunu alıp yine flood yapılabilir Nasıl olacagını tam anlatmıyım lamerlerin işine yaramasın
    Senin dedigin cookie olmasin
    Ben bilmiyorum $_SESSION'a disardan (kullanici tarafindan) mudahale edildigini, soylede google ebay amazon vs. yerlere flood yapalim heykliyelim