PHP ile flooda karşı güvenlik kodu

Veritabanina kayit yaptiginiz sayfalarda kullanabileceginiz basit bir guvenlik kodunun yapimi ve islevini anlatmak istedim.

PHP:
  1. <?
  2. session_start(); // Session baslatiyoruz
  3. if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
  4. if($_POST['SecInput']==$_SESSION['Sec']){ // post ile gelen SecInput esitse Sec isimli sessionuna
  5. echo 'guvenlik kodu dogru'; // guvenlik kodu dogrudur islemleri burada yapabiliriz
  6. }else{ // SecInput esit degilse Sec isimli sessionuna
  7. echo 'guvenlik kodu yanlis<br><a href="#" onClick="history.back(-1);">geri</a>'; // guvenlik kodu yanlis geri don diyoruz
  8. session_unset(); // sessionu siliyoruz
  9. }
  10. }else{ // get ile gelen act verisi esit degilse 'ok' a
  11. session_unset(); // eski session varsa siliyoruz
  12. $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
  13. $_SESSION['Sec']=$SecCode; // $SecCode isimli degisgenimizi Sec isimli sessionumuza esitledik
  14. 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
  15. }
  16. ?>

Yukarıdaki çalışmayı mantığı anlamanız için yapmıştım, şimdi de resimli güvenlik kodu yapalım.

PHP:
  1. <?
  2. session_start(); // Session baslatiyoruz
  3. if($_GET['act']=='ok'){ // get ile gelen 'act' verisi esitse 'ok' a
  4. if($_POST['SecInput']==$_SESSION['Sec'] && !$_POST['SecInput']==''){ // post ile gelen SecInput esitse Sec isimli sessionuna
  5. echo 'guvenlik kodu dogru'; // guvenlik kodu dogrudur islemleri burada yapabiliriz
  6. }else{ // SecInput esit degilse Sec isimli sessionuna
  7. echo 'guvenlik kodu yanlis<br><a href='.$_SERVER['HTTP_REFERER'].'>geri</a>';// guvenlik kodu yanlis geri don diyoruz
  8. }
  9. }elseif($_GET['s']=='img'){
  10.     $y = 60;
  11.     $g = 20;
  12.     $code = imagecreate($y, $g);
  13.     $bgc = imagecolorallocate($code, 0, 0, 0);
  14.     $tc = imagecolorallocate($code, 255, 255, 255);
  15.     imagefill($code, 0, 0, $tc);
  16.     imagestring($code, 3, 10, 3, $_SESSION['Sec'], $bgc);
  17.     header("Content-Type: image/gif");
  18.     imagejpeg($code);
  19.     imagedestroy($code);
  20. }
  21. else{
  22. session_unset();// eski session varsa siliyoruz
  23. $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
  24. $_SESSION['Sec']=$SecCode// Sec isimli sessiona da guvenlik kodumuzu esitledik
  25. 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. }
  27. ?>

Herhangi bir sorun veya aksilik olursa yardımcı olmaya çalışırım.

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (6 oy ortalamasi: 4.67 / 5)
Loading ... Loading ...


Etiketler: , , , , , ,

Bu yazıda yorum bulunmamakta. ilk siz yazın?.

Benzer Yazılar:

  • PHP'de Sınıflar(Classes) DERS 1 (0 Yorum)
  • Nesne yönelimli (Object Oriented) PHP (2 Yorum)
  • Mysql tablo adini degistirme (Rename Table) (0 Yorum)
  • PHP strtoupper(); ve strtolower(); fonksiyonlari (0 Yorum)
  • PHP ile kolayca Meta keywords olusturalim (0 Yorum)
  • Bunu okuyanlar bunlarıda okudu;

    Yorum Yaz