Kişisel Bir Web Günlüğü

PHP ile IBAN doğrulama yöntemleri (bütün ülkeler için)

IBAN logo1 Ocak 2010 tarihiyle birlikte bankalar arasında para transferi için IBAN kullanmak zorunlu hale getirildi. işlemlerin IBAN isimli bu standart hesap numaraları ile yapılmasının amacı, para transferlerinde karşılaşılan problemlerin üstesinden gelebilmek. Biz işin yazılım kısmına gelirsek; bu IBAN girdilerini doğrulatmak için sizlere 3 farklı yöntemden bahsedeceğim. Bu yöntemleri bütün ülkelerin bütün IBAN girdilerini doğrulatmak için kullanabililirsiniz.

1. Yöntem: “is_iban()” isimli fonksiyonu kullanmak

Bu yöntemde, is_iban_eburhan.zip isimli dosyayı bilgisayarınıza indiriyorsunuz ve içerisindeki is_iban.php dosyasını ilgili php sayfanıza include/require ediyorsunuz. Daha sonra herhangi bir IBAN girdisini aşağıdaki örnekte olduğu gibi doğrulatabilirsiniz. Eğer indirmeden kodları görmek isterseniz buraya tıklayabilirsiniz.

<?php
    require 'is_iban.php';

    $iban = 'RO49AAAA1B31007593840000';

    if( is_IBAN($iban) ) {
        echo 'IBAN geçerli';
    } else {
        echo 'IBAN geçersiz !';
    }
?>

2. Yöntem: formDogrula için “iban” eklentisini kullanmak

Eğer IBAN girdisini bir formdan alıp doğruluğunu kontrol ettirecekseniz ve form girdilerini doğrulatmak için benim formDogrula (fdo) sınıfımı kullanıyorsanız bu eklenti tam size. Hemen http://formdogrula.com/eklentiler-gonullu.html sayfasından “iban” eklentisini indirin ve formDogrula (fdo) sınıfının “eklentiler” klasörüne kopyalayın. Artık eklentiyi aşağıdaki gibi kolay bir şekilde kullanabilirsiniz:

<?php
    // formDogrula sınıfını çağır
    require '../eb.formDogrula.php';

    // formDogrula nesneni oluştur
    $fdo = new formDogrula('form1', 'post');

    // kural ekle
    $fdo->kural('iban', 'IBAN',  'gerekli|dolu|iban');

    // formu doğrulat
    if( ! $fdo->dogrulat() ) {
        echo 'Lütfen formu kontrol ediniz. Aşağıdaki hatalar oluştu:';
        echo '<ul>';
        $fdo->yazHatalar('<li>', '</li>', true);
        echo '</ul>';
    } else {
        echo "Tebrikler. Form başarıyla doğrulandı.";
    }
?>

3. Yöntem: “Zend_Validate_Iban” sınıfını kullanmak

Eğer Zend Framework kullanarak birşeyler geliştiriyorsanız o zaman ekstra birşeyler indirmenize gerek yok demek, çünkü ZF içerisinde IBAN doğrulama için hazır bir sınıf var. ZF dökümanındaki Standard Validation Classes sayfasından daha fazla bilgi alabileceğiniz bu sınıfı şu şekilde kullanabiliyorsunuz:

<?php
    $validator = new Zend_Validate_Iban();
    $iban = 'AT611904300234573201';

    if ($validator->isValid($iban)) {
        echo 'IBAN geçerli';
    } else {
        echo 'IBAN geçersiz';
    }
?>

Sonuç

3. yöntem hariç, diğer yöntemlerdeki kodları kendim yazdım. Bunun için ISO13616 IBAN Registry sayfasındaki dökümanlardan ve Özgür Ansiklopedi’deki International Bank Account Number sayfasındaki bilgilerden yararlandım. Ve ayrıca, 1. yöntemdeki fonksiyonu kullanarak örnek bir doğrulama sayfası da hazırladım. IBAN girdilerini bu sayfadan basit, hızlı bir şekilde doğrulatabilirsiniz. Bu sayfada herhangi bir bilgi tutulmamaktadır. Güvenle kullanabilirsiniz ;)

iban doğrulama
9 yorum var
  1. Güzel olmuş gerçekten..

    Teşekkürler eBurhan :)

  2. Harika! :) Yanlız require’yi neden parantez içinde yazmıyorsun?

  3. require veya include bir fonksiyon değil. Php dökümanında var bu:

    this is a language construct and not a function

    Fonksiyon olmadığı için parantez kullanmak şart değil. “Kod içerisinde ne kadar az sembol/karakter olursa, kodun okunması daha kolay ve rahat olur” düşüncesiyle kullanmıyorum.

  4. Ellerine sağlık.

  5. yazı için teşekkürler..bir de jquery için yada ajax için olsaydı daha iyi olurdu gibi..sayfa değişmeden kontrol daha güzel

  6. yazı için öncelikle teşekkür ederim ,kodlara bakarken bir html kodun ne amaçla kullanıldığını anlayamadım “autocomplete” bu kodu form nesnelerinde ne amaçla kullanıyorsunuz.

  7. @Sercan Aksoy
    “autocomplete” ile metin kutularına daha önceden girilmiş olan değerleri kullanıcıya göstermemiş oluyoruz. Burada çok önemli bir yeri yok bu komutun; ben sadece örnek sayfa hazırlarken çok fazla iban girişi yapıyordum ve her seferinde önceki yazdıklarımının ekranda çıkıp durmasından rahatsız oluyordum. O sebeble kapamıştım bu özelliği, örnek sayfayı internete atarken de unutmuşum silmeyi (:

  8. Güzel bir ders fakat bir de iban algoritmasını açıklasaydınız daha güzel olurdu.

  9. @Ali Görkem
    is_iban_eburhan.html sayfasında açıklamalar var.

İçinizde kalmasın, siz de yorum yazın

Telif Hakkı © 2012 eburhan.com | Structure | XHTML