formDogrula

php ile yazılmış form doğrulama sınıfı

2. doğrulama işlemi için kural ve kurallar ekleme

Bir form içerisindeki alanları ayrı ayrı doğrulamak için kural dediğimiz tanımlamalar yapmalıyız. Kurallar sayesinde, formdan gelen değerlerin bizim istediğimiz formatta olup olmadığını kontrol edebilmekteyiz. Şimdi aşağıdaki örnek koda bakalım ve bir kural nelerden oluşuyor inceleyelim:

$fdo->kural('kulAdi', 'Kullanıcı adı', 'gerekli|ara_uzunluk[5,10]|harf');

Tahmin ettiğiniz gibi formDogrula sınıfında, kural ekleme işlemini kural isimli metot ile yapıyoruz. Bu metot sıralı bir şekilde 3 tane parametre almak zorundadır:

  1. form alanının ismi (yani "name" değeri) (aynı zamanda kural ismidir)
  2. form alanını için bir etiket değeri (genelde "label" etiketleri arasındakiler)
  3. doğrulamada kullanılacak olan fonksiyonlar (doğrulama fonksiyonları)

kural metodu

Bu parametreleri virgül (,) karakteri ile, doğrulamada kullanılacak olan fonksiyonları ise dik çizgi (|) karakteri ile ayırıyoruz. Doğrulamada kullanılacak fonksiyonlara parametre göndermek gerekiyorsa, bu parametreleri köşeli parantezler ([ ve ]) arasına ve virgülle ayırarak yazıyoruz. [5,10] gibi...

gerekli, ara_uzunluk, harf, rakam gibi fonksiyonlar formDogrula sınıfının "eklenti" özelliğinden gelmektedir. Eklentiler ile ilgili bilgileri eklentiler sayfasında bulabilirsiniz ve kurallar içerisinde kullanabileceğiniz bu fonksiyonları daha yakından tanıyabilirsiniz.

Örneğe devam...

Kuralları biraz tanıdığımıza göre, bir önceki konuda başladığımız örnekle devam edelim. Hatırlarsanız örneğimizi oluşturan "form.html" sayfası şu kodlardan meydana geliyordu:

<form name="form1" method="post" action="form_isle.php">
    <fieldset><legend>Üye kayıt:</legend>
        <p> <label>Kullanıcı adı:</label> <input type="text" name="kulAdi" /> </p>
        <p> <label>Email adresi:</label> <input type="text" name="email" /> </p>
        <p> <label>Parola :</label> <input type="text" name="parola" /> </p>
        <p> <button type="submit">Gönder</button> </p>
    </fieldset>
</form>

Şimdi bu formdaki alanların tek tek nasıl doğrulanacağını gösteren senaryolar oluşturalım:

  • Kullanıcı adı (kulAdi) :
    1. gerekli olsun
    2. 5 ile 10 karakter uzunluğunda olsun
    3. yalnızca harflerden oluşabilsin (türkçe harfler yok)

bu senaryonun "kural" olarak belirtilmiş hali şöyle olacaktır:

$fdo->kural('kulAdi', 'Kullanıcı adı', 'gerekli|ara_uzunluk[5,10]|harf');

  • Email adresi (email):
    1. gerekli olsun
    2. elektronik posta formatında olsun

bu senaryonun "kural" olarak belirtilmiş hali şöyle olacaktır:

$fdo->kural('email', 'Email adresi', 'gerekli|eposta'));

  • Parola (parola):
    1. gerekli olsun
    2. 6 ile 12 karakter uzunluğunda olsun
    3. yalnızca rakamlardan oluşabilsin

bu senaryonun "kural" olarak belirtilmiş hali şöyle olacaktır:

$fdo->kural('parola', 'Parola', 'gerekli|ara_uzunluk[6,12]|rakam');

Şimdi de bu kuralların tek tek sınıf içerisine eklenmiş haline göz atalım:

<?php
    require './formDogrula/eb.formDogrula.php';

    // yeni bir nesne oluşturuyoruz
    $fdo = new formDogrula('form1', 'post');

    // kurallar
    $fdo->kural('kulAdi', 'Kullanıcı adı', 'gerekli|ara_uzunluk[5,10]|harf');
    $fdo->kural('email', 'Email adresi', 'gerekli|eposta'));
    $fdo->kural('parola', 'Parola', 'gerekli|ara_uzunluk[6,12]|rakam');
?>

Kuralları toplu halde ekleyelim...

Kuralları tek tek tanımlayabileceğiniz gibi, tek seferde tanımlamanız da mümkündür. Bunun için kurallar isimli metodu kullanabilirsiniz. Yukarıda 3 farklı kuralı "kural" metoduyla tek tek ekledik. İşte bu kuralların "kurallar" isimli metot ile aynı anda eklenmiş hali:

<?php
    require './formDogrula/eb.formDogrula.php';

    // yeni bir nesne oluşturuyoruz
    $fdo = new formDogrula('form1');
    
    // kurallar
    $fdo->kurallar(
        array('kulAdi', 'Kullanıcı adı', 'gerekli|ara_uzunluk[5,10]|harf'),
        array('email', 'Email adresi', 'gerekli|eposta'),
        array('parola', 'Parola', 'gerekli|ara_uzunluk[6,12]|rakam')
    );
?>