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.
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.
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';
}
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.";
}
}
<!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. ????
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.
Güzel bir anlatım olmuş hocam teşekkürler, kullanacağım :) Yanıtla
Rica ederim hocam ne demek :)
atakan 3 yıl önce
güncellenmesi lazım Yanıtla