Php ile güvenlik kodu üretmek ve onaylamak

Kategori: (Web Programlama) Yazan: admin, 27-06-2008

Etiketler : , , ,

Üyelik, form mail uygulamarında sıklıkla karşımıza çıkan güvenlik kodu ve onayını basitçe bu yazımda sizlere anlatmaya çalışacağım. Öncelikle güvenlik kodu, başka bir değişle rastgele kodu ele alalım. Php ile rastgele kod üretmek basit bir işlem olmasıyla beraber tamamen coderin hayal gücüne bağlıdır. Rastgele kod üretmek için o kadar çok alternatif kod yazılabilir ki şuan hayal edemiyorum. :) Bir örnekle rastgele kodlarımızı üretelim.

  1.  
    1. <?php
    2. function koduret($karakter = 8){ // eger karakter değişkeni boş gelirse otomatik 8 karakterli kod üretecektir
    3. $sha = sha1(rand(0,999)); // rastgele 0 ile 999 arasında sayı seçip sha1 fonksiyonu ile şifreliyoruz
    4. $kod = substr($sha, 10, $karakter); // üretilen koddan 10 ile istediğimiz karakter aralığını çekiyoruz
    5. return $kod;
    6. } // fonksiyonu kapattık
    7. // kullanımı
    8. $rastgelekod = koduret(6); // 6 karakterli kod ürettik
    9. ?>


Gördüğünüz gibi güvenlik kodumuzu üretmek bu kadar basit. Tabi siz dahada geliştirip daha farklı bi çok fonksiyon yazabilirsiniz. Sırada ise kodumuzu göstereceğimiz sayfamızı yazalım. Yalnız burda önemli olan bir nokta var. Kodumuzu nereye nasıl kaydedeceğiz? Ben bunun için SESSION kullanacağım. Çünkü veritabanı olaylarınıda işin içine katarsak baya vaktimizi alıcak :) Kodlarımızı yazmaya başlayalım.

  1. <?php
  2. session_start();
  3. function koduret($karakter = 8){
  4. $sha = sha1(rand(0,999));
  5. $kod = substr($sha, 10, $karakter);
  6. return $kod;
  7. }
  8. $rastgelekod = koduret(6); // kodumuzu ürettik
  9. $_SESSION["kod"] = $rastgelekod; // kodumuzu kod isimle sessiona atadık
  10. echo “<form action=\”giris2.php\” method=\”post\”>
  11. <table>
  12. <tr>
  13. <td>Güvenlik Kodu</td>
  14. <td width=\”1\”>:</td>
  15. <td><b>$rastgelekod</b></td>
  16. </tr>
  17. <tr>
  18. <td>Güvenlik Kodu</td>
  19. <td width=\”1\”>:</td>
  20. <td><input type=\”text\” name=\”gkodu\” size=10></td>
  21. </tr>
  22. <tr>
  23. <td> </td>
  24. <td width=\”1\”>:</td>
  25. <td><input type=\”submit\” value=\”Giris\”></td>
  26. </tr>
  27. </table>
  28. </form>”;
  29. ?>

giris.php adlı dosyamızda rastgele ürettiğimiz güvenlik kodumuzu kod isimli sessiona atıyoruz. Aynı dosyada kullanıcının form alanını doldurduğunda yazdığı kodu giris2.php dosyamıza göndereceğiz ve orada kodun doğru mu yanlış mı olduğunu test edip ona göre işlem yapacağız. Şimdi giris2.php dosyamızı yazmaya başlayalım.

  1. <?php
  2. session_start();
  3. $gkodu = $_POST["gkodu"]; // kullanıcının form alanına girdiği kod
  4. $kod = $_SESSION["kod"]; // sistemin ürettiği rastgele güvenlik kodu
  5. if(!$gkodu or $gkodu != $kod){
  6. echo “Güvenlik Kodunu Eksik Yada Yanlis Girdiniz
  7. <br /><br /><a href=\”javascript:history.go(-1);\”><< Geri</a>”;
  8. // kod yanlış işlemleri
  9. }
  10. else {
  11. echo “Dogru guvenlik kodunuz girdiniz”;
  12. // kod dogru işlemleri
  13. }
  14. ?>

giris2.php dosyamızda formdan gelen bilgiler ile kullanıcının sessionuna atatığımız kodun birbirine eşit olup olmadığını değerlendirip ona göre işlemleri yaparak uygulamamızı bitiriyoruz. Basitçe güvenlik kodu uygulaması bu şekilde yapılabilir. Uygulamayı geliştirmek ip, saat, zaman gibi çeşitli değişkenlerle güçlendirmek, veritabanı kullanmak sizlerin elinde. Ben sadece basitce bir anlatım yapmak istedim ve umarım başarılı olmuşumdur.

Uygulamanın çalışır halini görmek için buraya, indirmek için buraya tıklayınız.

Yorum Yazın

16 + 4 = ? (İşleminin Sonucu)