PHP ile IBAN doğrulama uygulaması yapıyoruz

PHP Trend Makale

Yoğun İstek Üzerine Makale Güncellendi

IBAN (International Bank Account Number - Uluslararası Banka Hesap Numarası), uluslararası para transferlerinde kullanılan standart bir hesap numarası sistemidir. Bir IBAN'ın geçerli olup olmadığını kontrol etmek, hatalı para transferlerini önlemek açısından oldukça önemlidir. Bu makalede, PHP kullanarak IBAN doğrulama ve banka ismi belirleme işlemlerini nasıl yapacağınızı öğreneceksiniz.

IBAN Doğrulama Neden Gereklidir?

  • Yanlış IBAN ile işlem yapılmasını önler.

  • Banka koduna göre hangi bankaya ait olduğunu belirleyebilirsiniz.

  • Finansal hataları minimuma indirir.

  • Uluslararası para transferlerinde güvenliği artırır.

PHP ile IBAN Doğrulama Kodu

Aşağıdaki PHP kodu, kullanıcının girdiği IBAN'ı doğrular ve Türkiye'deki bazı bankalara göre hangi bankaya ait olduğunu belirler.

function validateIBAN($iban) {
    // IBAN'ı büyük harfe çevir
    $iban = strtoupper($iban);
    
    // Boşlukları kaldır
    $iban = str_replace(' ', '', $iban);

    // IBAN uzunluklarını ülkelere göre belirle
    $ibanLengths = [
        'TR' => 26, // Türkiye IBAN uzunluğu
        // Diğer ülkelerin IBAN uzunlukları buraya eklenebilir
    ];

    // IBAN'ın ülke kodunu al
    $countryCode = substr($iban, 0, 2);

    // IBAN uzunluğunu kontrol et
    if (!isset($ibanLengths[$countryCode]) || strlen($iban) !== $ibanLengths[$countryCode]) {
        return false;
    }

    // IBAN'ı kontrol basamakları için yeniden düzenle
    $ibanCheck = substr($iban, 4) . substr($iban, 0, 4);

    // Harfleri sayılara dönüştür
    $ibanCheck = str_replace(range('A', 'Z'), range(10, 35), $ibanCheck);

    // IBAN mod 97 kontrolü
    if (bcmod($ibanCheck, '97') != 1) {
        return false;
    }

    return true;
}

Adım 2: Banka Adını Belirleme Fonksiyonu
Banka kodlarını kullanarak IBAN numarasının hangi bankaya ait olduğunu belirlemek mümkündür. Bu fonksiyon, Türkiye'ye ait IBAN numaralarındaki banka kodunu analiz ederek ilgili bankanın adını döndürür.

function getBankName($iban) {
    // Türkiye için IBAN'dan banka kodunu al
    if (substr($iban, 0, 2) === 'TR') {
        $bankCode = substr($iban, 4, 5);
        $banks = [
            '00001' => 'Ziraat Bankası',
            '00010' => 'Türkiye Cumhuriyeti Merkez Bankası',
            '00111' => 'Finans Bankası',
            '00062' => 'Garanti Bankası',
            '00017' => 'Halk Bankası',
            '00032' => 'VakıfBank',
            '00125' => 'Akbank',
            '00146' => 'İş Bankası',
            '00159' => 'Yapı Kredi Bankası',
            '00205' => 'Garanti Bankası',
            // Diğer bankalar buraya eklenebilir
        ];

        if (isset($banks[$bankCode])) {
            return $banks[$bankCode];
        } else {
            return 'Bilinmeyen Banka';
        }
    }

    return 'Ülke kodu desteklenmiyor';
}

Adım 3: Kullanıcıdan IBAN Alarak Doğrulama İşlemi

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $iban = $_POST['iban'];
    
    // Boşlukları kaldır
    $iban = str_replace(' ', '', $iban);

    if (validateIBAN($iban)) {
        $bankName = getBankName($iban);
        echo "IBAN geçerli. Banka: $bankName";
    } else {
        echo "IBAN geçersiz.";
    }
}

Adım 4: HTML Form ile IBAN Girişi

<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>IBAN Doğrulama</title>
</head>
<body>
    <form method="post" action="">
        <label for="iban">IBAN:</label>
        <input type="text" id="iban" name="iban" required>
        <input type="submit" value="Kontrol Et">
    </form>
</body>
</html>

Bu uygulama, kullanıcının girdiği IBAN numarasının geçerli olup olmadığını kontrol eder ve eğer geçerliyse, ilgili bankanın adını döndürür.

Bu sistem, finansal işlemlerde hata payını en aza indirerek, daha güvenilir ve hatasız bir süreç sağlar. Siz de kendi projelerinizde bu yapıyı kullanabilir veya geliştirebilirsiniz!

Geliştirme Fikirleri:

  • Daha fazla ülke desteği eklenebilir.

  • Banka kodu veritabanına kaydedilerek dinamik hale getirilebilir.

  • IBAN girişine anlık doğrulama eklenecek şekilde JavaScript ile geliştirilebilir.

  • Eşleştirme yöntemleri ile bankaların resimleri çekilebilir.

Bu makale hakkında düşüncelerinizi paylaşabilir veya geliştirme önerilerinizi ekleyebilirsiniz. ????

 


Yorumlar (2)

Bir dahaki sefere yorum yaptığınızda kullanılmak üzere adınız ve email adresiniz bu tarayıcıya kaydedilecektir.

  • atakan 3 yıl önce

    güncellenmesi lazım Yanıtla

    • Emin Yılmaz 3 yıl önce

      Merhaba Atakan, aslında çalışma konusunda bir problem yok, tek problem girilen IBAN arasında ki boşlukların olması. Makale içerisinde güncelleme yaptım :) İyi çalışmalar.

  • Zaytoz 3 yıl önce

    Güzel bir anlatım olmuş hocam teşekkürler, kullanacağım :) Yanıtla

    • Emin Yılmaz 3 yıl önce

      Rica ederim hocam ne demek :)