Merhaba, PHP Input Format Kontrolleri Yapmak yazım ile php yazılarıma devam ediyorum. Bu yazımızda, kullanıcıdan bilgi isterken, olabildiğince kurallara uygun veriler girmelerini sağlamak için bazı kontroller yapmamız gerekiyor. Örneğin bir kullanıcıdan isim ve soyisim istediğimizde, biliyoruz ki isim ve soyisimlerde rakam veya özel işaret kullanılmaz. Bu yüzden kullanıcının bu isim ve soyisim girerken bu hatalı karakterleri kullanmasını engellememiz gerekir. Bu yazımda da biraz bundan bahsedeceğim.
Türkiye’de kullanımını görmesem de yabancılarda isimlerde kesme işareti ( ‘ ) veya nokta da kullanılabilmektedir. Projelerinizde buna dikkat etmek isteyebilirsiniz.
PHP Input Format Kontrolleri Yapmak
Mesleki bir yaklaşım olarak kendi sınıflarımı oluşturmak ve kullanma eğilimindeyim. Hangi dil olursa olsun 2 kere kullanacağım şeyleri gruplayarak bir sınıf haline getiririm. Bu sınıfları da kullana kullana geliştirir ve nihai bir noktaya getirmek için çabalarım. Sonrasında da bu sınıfları başka projelerimde kullanırım.
Bu yazının konusu olan kontroller içinde aynı şekilde. En azından 2. kere kullanacağım hatta kullanma ihtimalim var ise kesinlikle bir sınıfta yer alır. Şimdi gelin birlikte bu kontrolleri nasıl yaptığıma bakalım.
Vereceğim metotlarda, geri dönüş true veya false olarak belirlenmiştir. Eğer şartlara uyarsa true uymazsa false döner. Siz bu dönüşlere göre işlemlerinizi yaparsınız.
PHP Sadece Harf Kullanımına İzin Vermek
Bu metot ile sadece Latin ve Türkçe harflere izin verilir. Türkçe harfler Latin alfabesinde ekstra oldukları için özellikle aşağıda fark edeceğinizi şekilde ekstra belirtmemiz gerekiyor.
public function JustTextChecker($text) // Sadece Harf içerebilir. Kullanım Soyisim { if (!preg_match("/^[a-zA-Zşüğöıç]*$/", $text)) { return false; } else { return true; } }
PHP Sadece Harf ve Boşluk Kullanımına İzin Vermek
Bu metot ile sadece Latin ve Türkçe harfler ve boşluk kullanımına izin verilir. Türkçe harfler Latin alfabesinde ekstra oldukları için özellikle aşağıda fark edeceğinizi şekilde ekstra belirtmemiz gerekiyor.
public function TextBlankChecker($text) // Sadece Harf ve Boşluk içerebilir. Kullanım İsim { if (!preg_match("/^[a-zA-Z-şüğöıç ]*$/", $text)) { return false; } else { return true; } }
PHP Sadece Rakam Kullanımına İzin Vermek
Bu metot ile sadece rakam kullanımına izin verilir.
public function JustNumberChecker($text) // Sadece Rakam içerebilir. Kullanım Fiyat, Yıl vs. { if (!preg_match("/^[0-9]*$/", $text)) { return false; } else { return true; } }
PHP Sadece Harf, Rakam ve Nokta Kullanımına İzin Vermek
Bu metot ile sadece Latin harfler rakam ve nokta kullanımına izin verilir. Kullanım amacına istinaden Türkçe harfler kullanılamaz.
public function LetterNumberChecker($text) // Sadece Harf, Sayı ve nokta içerebilir. Kullanım KullanıcıAdı { if (!preg_match("/^[a-z0-9.]+$/i", $text)) { return false; } else { return true; } }
PHP URL Kontrolü
Bu metot girilen değerin bir url olup olmadığını kontrol edebiliriz.
public function URLChecker($text) { if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $text)) { return false; } else { return true; } }
PHP E-Mail Kontrolü
Bu metot girilen değerin bir e-mail olup olmadığını kontrol edebiliriz. Burada PHP’nin orjinal metotlarından birini kullanıyoruz.
public function EmailChecker($text) { if (!filter_var($text, FILTER_VALIDATE_EMAIL)) { return false; } else { return true; }
Gördüğünüz gibi benim mevcut kontollerim bu şekilde. Elbette zamanla büyüyecek ve gelişecek bir sınıftır. Bilinen tüm kontrolleri en baştan ekleyebilirim ama bana göre bir davranış olmazdı. :D Şahsen bir şeyi lazım olduğunda yapmak ve çalıştığından emin olmak benim için olmazsa olmadır.
Tüm Kodlar – Github’da Ders6
<?php class FormatCheckerSystem { public function TextBlankChecker($text) // Sadece Harf ve Boşluk içerebilir. Kullanım İsim { if (!preg_match("/^[a-zA-Z-şüğöıç ]*$/", $text)) { return false; } else { return true; } } public function JustTextChecker($text) // Sadece Harf içerebilir. Kullanım Soyisim { if (!preg_match("/^[a-zA-Zşüğöıç]*$/", $text)) { return false; } else { return true; } } public function LetterNumberChecker($text) // Sadece Harf, Sayı ve nokta içerebilir. Kullanım KullanıcıAdı { if (!preg_match("/^[a-z0-9.]+$/i", $text)) { return false; } else { return true; } } public function JustNumberChecker($text) // Sadece Rakam içerebilir. Kullanım Fiyat, Yıl vs. { if (!preg_match("/^[0-9]*$/", $text)) { return false; } else { return true; } } public function URLChecker($text) { if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $text)) { return false; } else { return true; } } public function EmailChecker($text) { if (!filter_var($text, FILTER_VALIDATE_EMAIL)) { return false; } else { return true; } } }
PHP Input Format Kontrolleri Yapmak yazımda bu kadardı arkadaşlar. Diğer yazılarımda görüşmek üzere… Discord’a katılmayı unutmayın.
PHP Dersleri için başlattığım repoya bağlantıya tıklayarak ulaşabilirsiniz. Dersin kodları burada… :) Tüm PHP yazılarım için tıklayabilirsiniz.
Kodla kalın. :)