PHP Dersleri

Php’de Resim Doğrulama(Güvenlik) Kodu

PHP’de resim doğrulama kodu (CAPTCHA) oluşturmak için aşağıdaki adımları takip edebilirsiniz:

  1. İlk olarak, GD kütüphanesinin PHP sürümünde yüklü olduğundan emin olun. GD kütüphanesi, PHP’de resimlerle çalışmak için kullanılan bir grafik kütüphanesidir.
  2. Resim doğrulama kodunu oluşturmak için bir fonksiyon yazın. Bu fonksiyon, resim boyutunu, arka plan rengini, metin rengini, yazı tipini ve CAPTCHA metnini belirleyebilir. Ayrıca, CAPTCHA metnini rastgele harf ve sayı kombinasyonlarından oluşturabilirsiniz.
  3. CAPTCHA metnini ve kullanıcının girdiği metni karşılaştırmak için bir işlev yazın. Bu işlev, CAPTCHA metnini kullanıcının girdiği metinle karşılaştırır ve doğru ise “true” döndürür, aksi takdirde “false” döndürür.

Örneğin, aşağıdaki PHP kodu basit bir resim doğrulama kodu oluşturur:

<?php
session_start();
 
// CAPTCHA metnini rastgele oluştur
$harfler = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$random_text = substr(str_shuffle($harfler), 0, 6);
$_SESSION['captcha'] = $random_text;
 
// Resim boyutlarını ayarla
$width = 120;
$height = 40;
 
// Resim nesnesini oluştur
$image = imagecreatetruecolor($width, $height);
 
// Arka plan rengini belirle
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);
 
// Metin rengini belirle
$text_color = imagecolorallocate($image, 0, 0, 0);
 
// Metni resme ekle
imagettftext($image, 20, 0, 30, 30, $text_color, 'arial.ttf', $random_text);
 
// Resmi görüntüle
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Bu kod, CAPTCHA metnini oluşturur, resim boyutlarını ve renklerini ayarlar, metni resme ekler ve resmi görüntüler. CAPTCHA metni, rastgele harf ve sayı kombinasyonlarından oluşturulur ve $_SESSION['captcha'] değişkeninde saklanır.

Kullanıcının girdiği metni doğrulamak için aşağıdaki işlevi kullanabilirsiniz:

function validateCaptcha($user_input) {
  session_start();
  if($user_input == $_SESSION['captcha']) {
    return true;
  } else {
    return false;
  }
}

Bu işlev, $_SESSION['captcha'] değişkeninde saklanan CAPTCHA metni ile kullanıcının girdiği metni karşılaştırır. Eğer metinler eşleşirse “true” döndürür, aksi takdirde “false” döndürür.

Bu şekilde, PHP’de resim doğrulama kodu (CAPTCHA) kullanılıp, kullanıcının girdiği metni doğrulayabilirsiniz. Ancak, CAPTCHA’ların tamamen güvenli olmadığını unutmayın ve ek güvenlik önlemleri almanız gerekebilir.

Form İle Kullanımı

Bu CAPTCHA kodunu bir formda kullanmak için aşağıdaki adımları takip edebilirsiniz:

  1. CAPTCHA kodunu oluşturan PHP dosyasını oluşturun ve bir sayfaya kaydedin. Bu sayfa resim doğrulama kodunu görüntüler.
  2. Formunuzun HTML koduna resim doğrulama kodunun görüntüleneceği bir <img> etiketi ekleyin. Bu etiket, resim doğrulama kodunu gösterir.
  3. Formunuzda bir metin kutusu oluşturun ve kullanıcının CAPTCHA kodunu girmesine izin verin.
  4. Form verilerini göndermek için bir PHP betiği oluşturun ve CAPTCHA doğrulaması yapın. CAPTCHA kodunu doğrulamak için önceden yazdığımız validateCaptcha() işlevini kullanabilirsiniz. Eğer CAPTCHA doğruysa, form verilerini işlemeye devam edebilirsiniz. Aksi takdirde, kullanıcıya bir hata mesajı gösterin ve formu yenileyin.

Örneğin, aşağıdaki kod formda CAPTCHA doğrulama kullanımını gösterir:

<form method="POST" action="submit.php">
  <label for="captcha">Lütfen resimdeki metni girin:</label>
  <input type="text" id="captcha" name="captcha" required>
  <img src="captcha.php" alt="CAPTCHA kodu">
  <button type="submit">Gönder</button>
</form>

Bu kod, formun HTML kodunu oluşturur. Kullanıcıya CAPTCHA kodunu girmesi için bir metin kutusu gösterir ve aynı sayfada oluşturduğumuz CAPTCHA görüntüsünü <img> etiketi içinde gösterir. Ayrıca, form verileri göndermek için “submit.php” isimli bir PHP sayfası oluşturulmalıdır.

submit.php dosyasında, CAPTCHA doğrulamasını yapmak için aşağıdaki kodu kullanabilirsiniz:

session_start();
$captcha = $_POST['captcha'];
if(validateCaptcha($captcha)) {
  // CAPTCHA doğru, form verilerini işlemeye devam edin
} else {
  // CAPTCHA yanlış, hata mesajı gösterin ve formu yenileyin
}

Bu kod, kullanıcının girdiği CAPTCHA metnini validateCaptcha() işleviyle doğrular. Eğer CAPTCHA doğruysa, form verilerini işlemeye devam edebilirsiniz. Aksi takdirde, kullanıcıya bir hata mesajı gösterin ve formu yenileyin. Böylece PHP Resim Doğrulama işlemini sağlamış oluyoruz.

İlgili Makaleler

Bir Yorum

  1. Merhaba sayın Eğitmenim. Sizinle 1 hafta önce udemy kursunuzu görüp takibe alarak tanışmış oldum. Giriş videonuzu izledikten sonra anlatım şeklinizi çok beğendiğim için ve konularda oldukça önemli bir altyapı oluşturacağından dolayı öncelikle tanıtım videolarınızda bahsettiğiniz kitabı sipariş ederek sonrasında kursunuzu satın alarak sizi çok dikkatli bir şekilde izlemeye ve sizinle birlikte uygulamaları yapmaya başladım. İnternet sitenize ve youtube kanalınıza da abone olarak takibi tamamladım. Bunların tek nedeni, şimdiye kadar izlediğim PHP eğitim videolarından çok farklı bir yöntem ile konu anlatımınızdır. Örneklerin dışında slaytlar ile açıklama yapmanız takdiri, övgüyü ve saygıyı tam anlamı ile hak ediyor. Yaşım 50 ama öğrenmenin yaşı olmaz. Öğrenciniz olmaktan mutlu oldum. Bu arada videolardan anladığım kadarı ile memleket ve tuttuğunuz takım ortak noktamız olmuş 🙂 Hayatınızda ve mesleğinizde başarılar diliyorum. Emeğinize ve yüreğinize sağlık.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir