PHP İle Güvenlik Kodu Üretme

'PHP' forumunda Sagittarius tarafından 20 Temmuz 2018 tarihinde açılan konu

  1. Sagittarius

    Sagittarius DAYI Altın Üye

    Mesaj:
    289
    Beğeniler:
    673
    Cinsiyet:
    Erkek
    Şehir:
    Hollanda
    Güvenlik kodu üretmek için bir adet guvenlikod.php adında bir sayfa oluşturalım ve içine şu kodları girelim.
    Kod:
    <?php
    session_start();
    function generateCode($characters=4) {
    //Kullanmak istediginiz karakterleri girelim
    $possible = '23456789bcdghjkmnpqrstvwyz';
    $code = '';
    for ($i=0;$i < $characters;$i++) {
    $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
    }
    return $code;
    }
    
    function create($characters=4,$width='120',$height='35') {
    // rastgele bir kod uretelim ve alttaki font degeri icin bir font dosyasi olusturup kullanalim
    $code = generateCode($characters);
    $font = 'arial.ttf';
    
    // Yazı tipi ve ebat ayar,i
    $font_size = $height * 0.75;
    $image = @imagecreate($width, $height) or die('Cannot initialize new GD image stream');
    
    // Renkler kismi burda renkler RGB olarak kodlanmistir
    $background_color = imagecolorallocate($image, 220, 220, 220);
    $text_color = imagecolorallocate($image, 10, 30, 80);
    $noise_color = imagecolorallocate($image, 150, 180, 220);
    
    //arka planda karisiklik yapalim rastgele noktlar falan olusturalim
    for( $i=0; $i<($width*$height)/3; $i++ ) {
    imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
    }
    
    //arka planda karisiklik yapalim rastgele cizgiler falan olusturalim
    for( $i=0; $i<($width*$height)/150; $i++ ) {
    imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
    }
    
    //metin kutusu olusturup metimizi yazdiralim
    $textbox = imagettfbbox($font_size, 0, $font, $code) or die('Error in imagettfbbox function');
    $x = ($width - $textbox[4])/2;
    $y = ($height - $textbox[5])/2;
    $y -= 5;
    imagettftext($image, $font_size, 0, $x, $y, $text_color, $font , $code) or die('Error in imagettftext function');
    
    // tarayiciya resim olarak tanitalim
    header('Content-Type: image/jpeg');
    imagejpeg($image);
    imagedestroy($image);
    
    // sesiona alip istedigimiz yerde bu kodu kullanalim
    $_SESSION['uretilen_koda']=$uretilenkod;
    }
    // kodumuzu create diyerek olusturalim
    create();
    ?>
    Kodmuzu yukarıda ne işe yaradıklarını anlattım. Çalışıp çalışmadığını siteadi.com/guvenlikkod.php ile kontrol edebilirsiniz. Şimdi bu kodumuzu formumuza ekleyelim. Basit bir form oluşturuyorum

    Kod:
    <form>
    <p>güvenlik kodunu giriniz</p>
    <img src="guvenlikkod.php">
    <input type="text" name="gokod" id="gokod">
    <input type="submit" name="gonder" id="gonder" value="Gönder" >
    </form>
    Burada önemli olan husus post yöntemini kullanacağımız için güvenlik kodunun girildiği kutuya id ve name kısımlarına gokod dedim ki kontrol aşamasında buraya baksın doğrumu yanlış mı diye.

    Burada önemli olan husus post yöntemini kullanacağımız için güvenlik kodunun girildiği kutuya id ve name kısımlarına gokod dedim ki kontrol aşamasında buraya baksın doğrumu yanlış mı diye.

    Güvenlik Kodumuzu Doğrulamasını Sağlamak
    Evet buraya kadar güvenlik kodumuzu oluşturduk ve formumuza ekledik. Sitemizde güvenlik kodu çalışıyor ve bu kodu doğru giren kişiler sadece bana veri göndermesini istiyorsam ne yapacağız ona bakalım birde.

    Kod:
    <?php
    if($_POST){
    //kontrol edelim
    if($_POST['gokod']==$_SESSION['uretilen_kod']){
    //bu satırı silin kod dogru ise çalıştırmak istediğiniz kodu buraya yazınız.
    }
    else{
    echo '<div style="background-color:red"><span style="color: white">Güvenlik kodunu yanlış girdiniz Lütfen kontrol ediniz!</span></div>';
    }
    }
    ?>
    İşlem bu kadar. İşinize yaraması umuduyla. Örnek güvenlik kodu üreten dosyayı indirmek için aşağıdaki bağlantıyı kullanabilirsiniz.
     
    En son bir moderatör tarafından düzenlenmiş: 21 Temmuz 2018
    Kripton, Luxury ve KocaReis bunu beğendi.
  2. Kripton

    Kripton Altın Üye

    Mesaj:
    543
    Beğeniler:
    492
    Şehir:
    MEXICO CITY
    Eline saglik.
     
Yükleniyor...

Bu Sayfayı Paylaş