Validasyon Kütüphaneleri


    × Bunları biliyor muydunuz?
"ZN Framework Custom Edition dağıtımı ile kendinize özel proje dizin yapısı tasarlabilirsiniz."


Bu kütüphanelerin temel amacı veri ve sistem güvenliğini sağlamaktır. 

Validation Form nesnelerinden gelen değerler üzerinde kontrol yapmak için kullanılır.
Validator Verileri kontrolleri yapmak için kullanılır.
Validate Bir veriye filtreleme yapmak için kullanılır.

 

 

# Kurulum


ZN SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-validation

 

 

# Validation (ZN >= 0.0.1)


Formlardan post, get gibi yöntemlerle gönderilen verilerin kontrolünü sağlamak için oluşturulmuştur.

 

 

# Uygulama


# Standart Validasyon Kullanımı
# Form Validasyon Kullanımı

 

 

# Yöntemler


ZN + Tür Yöntem
3.0.0 This validate(String ...$args)
3.0.0 This secure(String ...$args)
3.0.0 This compare(Int $min, Int $max)
3.0.0 This matchPassword(String $password)
3.0.0 This match(String $data)
3.0.0 This phone(String $pattern)
3.0.0 This pattern(String $pattern, String $extra = NULL)
5.3.5 This between(Float $min, Float $max)
5.6.4 This card(String $type)
5.6.4 This cvc(String $type)
5.6.4 This cardDate(Void)
5.6.4 This messages(Array $messages)
3.0.0 This value(String $name)
3.0.0 This method(String $method)
1.0.0 Void rules(String $name, Array $config = [], String $viewName = NULL)
1.0.0 Mixed error(String $name = 'array')
1.0.0 Mixed postBack(String $name, String $met = 'post')
5.4.2 Bool check(String $submit = NULL)

 

 

# Validate (ZN >= 3.0.0)


Doğrulama yöntemidir. 

Parametre
String ...$args Filtreler.
identity Kimlik numarası kontrolü.
email E-posta kontrolü.
url URL adres kontrolü.
specialChar Özel karakter kontrolü.
numeric Verilerin sayı kontrolü
alpha Harflerin kontrolü.
alnum Harf ve sayı kontrolü.
phone Telefon kontrolü.
required Boş geçilemez verilerin kontrolü.
trim Boş karakter kontrolü.
captcha Güvenlik kodu kontrolü. 
Return This
Kullanımı
Validation::validate('numeric', 'trim')->rules('phone');

 

 

# Secure (ZN >= 3.0.0)


Güvenlik yöntemidir. 

Parametre
String ...$args Filtreler.
nc Kötü verilerin kontrolü.
html Html kodu içerikli verilerin kontrolü.
xss Tırnak işaretlerinin ve script kontrolü.
injection Veritabanı enjeksiyon kontrolü.
php PHP taglarının kontrolü.
script Script taglarının kontrolü
Return This
Kullanımı
Validation::secure('xss', 'html', 'script')->rules('content');

 

 

# Compare (ZN >= 3.0.0)


Karşılaştırma yöntemidir. 

Parametre
Int $min Minimum karakter sayısı kontrolü.
Int $max Maksimum karakter sayısı kontrolü.
Return This
Kullanımı
Validation::compare(4, 16)->rules('password');

 

 

# MatchPassword (ZN >= 3.0.0)


Kayıt veya güncelleme işlemlerinden şifre ve şifre tekrar verilerinin eşleşip eşleşmediğinin kontrolünü yapan yöntemdir.

Parametre
String $password Şifre tekrar input nesnesinin name değeri.
Return This
Kullanımı
Validation::matchPassword('passagain')->rules('pass');

 

 

# Match (ZN >= 3.0.0)


Herhangi iki bilginin eşleşip eşleşmediğinin kontrolünü yapan yöntemdir.

Parametre
String $data Kontrol edilecek input nesnesinin name değeri.
Return This
Kullanımı
Validation::match('oldpass')->rules('newpass');

 

 

# Phone (ZN >= 3.0.0)


Telefon bilgisi kontrolünü yapan yöntemdir.

Parametre
String $pattern Desen. Her bir rakam * ile gösterilecek şekilde desen kullanılır.
Return This
Kullanımı
Validation::phone('(***)-(***)-(**)-(**)')->rules('example');

Yukarıdaki kurala uyan bir veri (090)-(534)-(00)-(00) gibi bir dizilimde olmalıdır.

 

 

# Pattern (ZN >= 3.0.0)


İstenilen türde değerin kontrolü için kullanılır. Bu yöntem içerisinde düzenli ifade içermelidir.

Parametreler
String $pattern Kontrol edilecek düzenli ifade. Başına ve sonuna kapsayıcı karakter koymanıza gerek yoktur.
String $extra Düzenli ifadelerin sonuna eklenen i, s, x gibi extra karakterlerin kullanımı içindir.
Return This
Kullanımı
Validation::pattern('[a-zA-Z0-9]+', 'i')->rules('name');

 

 

# Between / BetweenBoth (ZN >= 5.3.5)


Verinin belirtilen 2 sayı arasında olup olup olmadığını kontrol eder.

Parametreler
Float $min Küçük sayı.
Float $max Büyük sayı.
Return This
Kullanımı
Validation::between(100, 200)->rules('name');

Between kontrolünde sayılar arasında olmak zorundadır. BetweenBoth kontrolünde ise sayılara eşitte olabilir.

 

 

# Card (ZN >= 5.6.4)


Kredi kartı numarasının geçerliliğini kontrol eder. Çok sayıda kredi kartı sağlayıcısını destekler.

Parametreler
String $type Kredi kartı sağlayıcısı.
Desteklenen Sağlayıcılar visaelectron, visa, mastercard, maestro, dankort, jcb 
forbrugsforeningen, amex, dinersclub, discover, unionpay
Return This
Kullanım
Post::cardNumber('5522334422334112');

Validation::card('mastercard')->rules('cardNumber')

 

 

# CVC (ZN >= 5.6.4)


Kredi kartı güvenlik numarasının geçerliliğini kontrol eder. Çok sayıda kredi kartı sağlayıcısını destekler.

Parametreler
String $type Kredi kartı sağlayıcısı.
Desteklenen Sağlayıcılar visaelectron, visa, mastercard, maestro, dankort, jcb 
forbrugsforeningen, amex, dinersclub, discover, unionpay
Return This
Kullanım
Post::cardCVC('921');

Validation::cvc('mastercard')->rules('cardCVC');

 

 

# CardDate (ZN >= 5.6.4)


Kredi kartının son kullanım tarihinin geçerliliğini kontrol eder.

Parametreler
Void
Return This
Kullanım

Gelen değer ay/yıl formatında bir bilgi içermelidir.

Post::cardDate('04/2023');

Validation::cardDate()->rules('cardDate');

 

 

# Messages (ZN >= 5.6.4)


Validasyon işlemlerinde oluşan hata çıktısı External/Languages/ViewObjects.php dosyasında yer alan tanımlamalara göre oluşturulur. Çıktıyı değiştirmek için bu dosyaları manipüle edebileceğiniz gibi bu işlemi bu yöntemle de gerçekleştirebilirsiniz.

Parametreler
Array $messages Kullanın tanımladığı mesajlar dizisi.
anahtar Anahtar olarak validasyon işleminin adı. Örnek: required, email
değer Değer olarak da bu işlemde hata oluşması sırasında oluşturulacak çıktının içeriği. Örnek: Geçersiz kullanım!
Return This
Kullanım
Post::cvc(123123);

Validation::messages
([
    'cvc' => 'Geçersiz kart güvenlik numarası.'
]);

Validation::cvc('mastercard')->rules('cardCVC');

echo Validation::error('string');
Geçersiz kart güvenlik numarası.
Veri Yerleştirme Deyimleri

Oluşturulan hata mesajına veri yerleştirmek için bazı deyimler kullanılır. 

:name Hataya neden olan form nesnesinin adı veya takma adını temsil eder.
:px İsim dışında veri gönderimi için kullanılır. X kullanılan parametre başına sıralı sayıyı temsil eder.
Post::name('Mi');
Post::point(150);

Validation::messages
([
    'cvc'     => ':name alanı geçersiz kart güvenlik numarasına sahiptir.',
    'between' => ':name alanı [:p1 - :p2] sayı aralıklarında değildir.',
    'minchar' => ':name alanı en az :p1 adet sayı içermelidir.'
]);

Validation::value('İsim')->rules('name', ['minchar' => 3]);
Validation::between(50, 100)->value('Puan')->rules('point');

echo Validation::error('string');
İsim alanı en az 3 adet sayı içermelidir.
Puan alanı [50 - 100] sayı aralıklarında değildir.

 

 

# Value (ZN >= 3.0.0)


Validation::rules() yönteminin 3. parametresi yerine kullanılır. Input name değerinin üretilen hata çıktısında görünen adını ayarlamak için kullanılır.

Parametreler
String $value Input nesnesinin hangi isimle görüneceği.
Return This
Kullanımı
Validation::validate('required')->compare(5, 100)->value('Name')->rules('name');

 

 

# Method (ZN >= 3.0.0)


Validation::rules() yönteminin 4. parametresi yerine kullanılır. İstek türü varsayılan olarak post ayarlıdır. Bunu değiştirmek için bu yöntemden yararlanılır.

Parametreler
String $method İstek yöntem türü.
Seçenekler post, get, request
Return This
Kullanımı
Validation::validate('required')->method('get')->rules('name');

 

 

# Rules (ZN >= 0.0.1)


Bu yöntemin temel amacı formlardan gelen verilerin hangi kontrol parametrelerinden geçeceğini belirlemektir. Veriler kontrolden başarılı bir şekilde geçerse error() yöntemi false döner.

Parametreler
String $inputName Nesne, post veya diğer yöntemlerle gönderilen verinin ismi.
Array $rules Uygulanacak filtreler dizisi.
String $viewName Input nesnesinin görünen değeri.
Return Void
Kullanımlar
Post::username('ExampleUser');
Post::password('1234');

Validation::rules('username', ['required', 'email'], 'Username:');
Validation::rules('password', ['required', 'minchar' => 8, 'maxhar' => 32], 'Username:');

output( Validation::error() );
0 => string 'Username: field is not valid email address!' ( length = 45 ),
1 => string 'Username: area of ​​at least 8 characters long!' ( length = 53 )

 

 

# Error (ZN >= 0.0.1)


Validasyon sonrası veri kontrolünün başarı ile sağlanıp sağlamadığı hakkın bilgi almak amaçlı kullanılır. Bu yöntem genellikle string parametresi ile bilgilendirme mesajı vermek için kullanılır.

Parametreler
String $type = 'array' Hata çıktısının veri türü.
array Hata çıktısı dizi türünde döner.
string Hata çıktısı dizge türünde döner.
Return Mixed
Kullanımlar
echo Validation::error('string');
output( Validation::error() );

 

 

# Check (ZN >= 5.4.2)


Form kütüphanesine ait nesnelerin validate() yöntemi ile oluşturulan kuralların kontrolü için kullanılır.

Parametreler
5.4.2 String $submitName = NULL Form'u submit eden submit butonun name değeri.
  Return Bool
Kullanımlar
<?php namespace Project\Controllers;

use Validation, Post;

class Home extends Controller
{
    public function main(String $params = NULL)
    {
        if( ! Validation::check('submit') )
        {
            View::error(Validation::error('string'));
        }
    }
}

 

 

# Standart Validasyon Kullanımı


Genellikle Validation kullanımı bir görünüm sayfasından post edilen forma ait değerleri kontrol etmek için kullanılır. Buna göre aşağıdaki gibi bir kontrolcü ve bir görünüm sayfamızın var olduğunu kabul ederek kodlarımızı düzenleyelim.

Formu Hazırlayın

Veri göndereceğiniz formunuzu hazırlayın. 

Görünüm: Views/contact/main.wizard.php
@Form::open('test')
@Form::placeholder('Name')->text('name'): <br>
@Form::placeholder('Subject')->textarea('subject'): <br>
@Form::submit('sendSubmit', 'Send')
@Form::close()

@if( ! empty($validationError) )
    @$validationError
@endif
Kontrolcüyü Hazırlayın

Gelen form verilerini işleme sokan kontrolcüyü hazırlayın. 

Kontrolcü: Controllers/contact.php
<?php namespace Project\Controllers;

use Validation, DB, Post;

class Contact extends Controller
{
    public function main(String $params = NULL)
    {
        if( Post::sendSubmit() )
        {
            Validation::validate('required')
                      ->compare(2, 250)
                      ->secure('xss', 'injection')
                      ->value('Name : ')
                      ->rules('name');

            Validation::validate('required')
                      ->compare(5, 250)
                      ->secure('script', 'xss')
                      ->value('Subject : ')
                      ->rules('subject');

            if( ! $validationError = Validation::error('string') )
            {
                DB::insert('post:contact');               
            }    
        } 

        View::validationError($validationError ?? NULL);    
    }
}

 

 

# Form Validasyon Kullanımı


Bu tip kullanımda form verilerinin kontrolü kontrolcü üzerinde Validation::rules() yerine görünüm üzerinde Form::validate() yöntemi ile yapılır.

Formu Hazırlayın

Veri göndereceğiniz formunuzu hazırlayın. 

Görünüm: Views/contact/main.wizard.php
@Form::open('test')
@Form::placeholder('Name')->validate('xss', 'injection', ['minchar' => 2])->text('name'): <br>
@Form::placeholder('Subject')->validate(['minchar' => 5, 'maxchar' => 250])->textarea('subject'): <br>
@Form::submit('sendSubmit', 'Send')
@Form::close()

@if( ! empty($validationError) )
    @$validationError
@endif
Kontrolcüyü Hazırlayın

Gelen form verilerini işleme sokan kontrolcüyü hazırlayın. 

Kontrolcü: Controllers/contact.php
<?php namespace Project\Controllers;

use Validation;

class Home extends Controller
{
    public function main(String $params = NULL)
    {
        if( ! Validation::check('sendSubmit') )
        {
            # your codes...
            View::validationError(Validation::error('string'));
        }
    }
}

 

 

# Validator (ZN >= 4.0.23)


Verilerin kontrolü maksadıyla oluşturulmuş kütüphanedir. Bu bölümde Validator:: kütüphanesinin normal veriler için kullanımı anlatılacaktır.

 

 

# Yöntemler


Bool phone(String $data, String $pattern = NULL)
Bool numeric(String $data)
Bool alpha(String $data)
Bool alnum(String $data)
Bool identity(Int $no)
Bool email(String $data)
Bool url(String $data)
Bool specialChar(String $data)
Bool maxchar(String $data, Int $char)
Bool minchar(String $data, Int $char)

 

 

# Phone (ZN >= 4.0.23)


Verinin telefon bilgisi içerip içermediği kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
String $pattern = NULL Hangi desene göre kontrol yapılacağı.
Return Bool
Örnekler
echo Validator::phone('1231');
echo Validator::phone('32343234234');
echo Validator::phone('123-234', ' *- - ');
echo Validator::phone('123-23-23', ' *- - '); 
0
1
0
1

 

 

# Numeric (ZN >= 4.0.23)


Verinin sayısal veri olup olmadığı kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
Return Bool
Örnekler
echo Validator::numeric('1231');
echo Validator::numeric('a234');
echo Validator::numeric('234'); 
1
0
0

 

 

# Alpha (ZN >= 4.0.23)


Verinin alfabetik veri olup olmadığı kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
Return Bool
Örnekler
echo Validator::alpha('1231');
echo Validator::alpha('a234');
echo Validator::alpha('abcd'); 
0
0
1

 

 

# Alnum (ZN >= 4.0.23)


Verinin alfabetik veya sayısal veri olup olmadığı kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
Return Bool
Örnekler
echo Validator::alnum('1231');
echo Validator::alnum('a234');
echo Validator::alnum('abcd');
echo Validator::alnum('?+y12');
1
1
1
0

 

 

# Identity (ZN >= 4.0.23)


Verinin kimlik numarası olup olmadığı kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
Return Bool
Örnekler
echo Validator::identity(12312311231);
echo Validator::identity('12312312');
0
0

Gerçek bir kimlik numarası girdiğinizde sonucun 1 olduğunu görebilirsiniz.

 

 

# Email (ZN >= 4.0.23)


Verinin e-posta olup olmadığı kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
Return Bool
Örnekler
echo Validator::email('robot@znframework');
echo Validator::email('robot@znframework.com');
0
1

 

 

# URL (ZN >= 4.0.23)


Verinin url olup olmadığı kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
Return Bool
Örnekler
echo Validator::url('www.znframework.com');
echo Validator::url('https://www.znframework.com');
0
1

 

 

# SpecialChar (ZN >= 4.0.23)


Verinin içerisinde özel karakter olup olmadığı kontrol edilir.

Parametreler
String $data Kontrol edilecek veri.
Return Bool
Örnekler
echo Validator::specialChar('abc+');
echo Validator::specialChar('abc');
1
0

 

 

# Minchar (ZN >= 4.0.23)


Verinin minumum uzunluk değeri kontrol edilir. Belirtilen değere eşit ve büyük olduğu sürece true döner.

Parametreler
String $data Kontrol edilecek veri.
Int $length Karakter uzunluğu.
Return Bool
Örnekler
echo Validator::minchar('abc', 5);
echo Validator::minchar('abc', 2);
0
1

 

 

# Maxchar (ZN >= 4.0.23)


Verinin maksimum uzunluk değeri kontrol edilir. Belirtilen değere eşit ve küçük olduğu sürece true döner.

Parametreler
String $data Kontrol edilecek veri.
Int $length Karakter uzunluğu.
Return Bool
Örnekler
echo Validator::maxchar('abc', 5);
echo Validator::maxchar('abc', 2);
1
0

 

 

# Validate (ZN >= 4.0.23)


Bu kütüphane Validator:: kütüphanesinin sıralı kullanımına yönelik oluşturulmuş kontrol kütüphanesidir. Validator:: kütüphanesinde yer alan bütün yöntemleri kullanabilir.

 

 

# Yöntemler


This data(String $data)
Bool get(Void)
Array status(Void)

 

 

# Data (ZN >= 4.0.23)


Kontrol edilecek verinin girileceği yöntemdir.

Parametreler
String $data Kontrol edilecek veri.
Return This
Örnekler
$status = Validate::data('ExampleData')
                  ->maxchar(20)
                  ->minchar(5)
                  ->email()
                  ->get();

echo $status;
output( Validate::status() );
false
maxchar => boolean true ( length = 4 ),
minchar => boolean true ( length = 4 ),
email   => boolean false ( length = 5 )

 

 

# Get (ZN >= 4.0.23)

Validate kütüphanesine ait filtreleme


işlemlerini sonlandırmak için kullanılır.

Parametreler
Void
Return Bool

Yukarıdaki örnekte kullanımı gösterilmiştir.

 

 

# Status (ZN >= 4.0.23)


Validate kütüphanesine ait filtreleme işlemleri sonucunda hangi filtrelerden başarı ile geçilip hangilerinden geçilmediği hakkıkında bilgi veren bir dizi döndürür.

Parametreler
Void
Return Bool

Yukarıdaki örnekte kullanımı gösterilmiştir.