formDogrula

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

3. kuralları dosyaya yazma ve dosyadan okuma

Bir önceki konuda kurallardan ve kuralların nasıl kullanılacağından bahsetmiştik. formDogrula sınıfının, kurallar ile ilgili size sunduğu bir güzellik daha var. Kuralları bir ini dosyasına otomatik kaydedebilirsiniz veya daha önceden kaydedilmiş kurallar barından bir ini dosyasından kuralları yükleyebilirsiniz. Bu işlemler için iniyeYaz ve inidenAl isimli metotları kullanmamız gerekecektir.

Bu metotların kullanımına geçmeden önce önemle dikkat etmeniz gereken 2 unsur var:

  1. Sınıfın kurucu metoduna girilen ilk parametre, ini dosyasının ismi olacaktır.
    $fdo = new formDogrula('kayit_formu');
    
    Bu örneğe göre, oluşacak ini dosyasının ismi kayit_formu.ini olarak belirlenir.
  2. Sınıfın oluşturduğu ini dosyaları kurallar isimli klasör içerisinde depolanır. Dolayısıyla bu klasörün yazılabilir (chmod 0777) olması gerekmektedir.

Kuralları "ini" dosyasına kaydedelim...

Önceki konudan hatırlayacağınız üzere bazı kurallar yazmıştık. Bu kuralları "ini" dosyasına yazmak için iniyeYaz() metodunu şöyle kullanıyoruz:

<?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')
    );

    // kuralları bir "ini" dosyayasına kaydet
$fdo->iniyeYaz();
?>

Bu işlem sonrasında eklentiler klasörü altında form1.ini dosyası oluşacaktır ve içerisine alttaki formatta kurallar yazılmış olacaktır.

[Kural 1]
isim    = "kulAdi"
etiket  = "Kullanıcı adı"
fonks   = "gerekli|ara_uzunluk[5,10]|harf"

[Kural 2]
isim    = "email"
etiket  = "Email adresi"
fonks   = "gerekli|eposta"

[Kural 3]
isim    = "parola"
etiket  = "Parola"
fonks   = "gerekli|ara_uzunluk[6,12]|rakam"

iniyeYaz() metodu çalıştırıldığında ini dosyasının oluşturulduğuna dair ekranda bir mesaj belirir. Hemen bunun altında da "ini" dosyasının içeriği bir metin alanı (textarea) içerisinde gösterilir. Eğer bu metodu iniyeYaz(false) olarak kullanırsanız, bu mesaj ve metin alanı yine gösterilir fakat "ini" dosyası "eklentiler" klasörü altına kayıt edilmez! Böylece kuralları sadece görüntülemiş olursunuz.

Kuralları "ini" dosyasından okutalım...

Aslında en güzeli, kuralları bir ini dosyadan okutmaktır. ini dosyasını açarak kurallar üzerinde çok kolay bir şekilde düzenleme yapabilirsiniz. Ayrıca formDogrula sınıfının bulunduğu PHP sayfasına kurallar yazmayarak, o sayfanın kodlarının sade ve kolay okunabilir olmasını sağlamış olursunuz.

Yukarıda, kuralları "form1.ini" dosyasına kaydetmiştik. Şimdi bu dosyadan kuralları alalım:

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

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

    // kuralları "ini" dosyayasından al
$fdo->inidenAl();
?>

Gördüğünüz gibi inidenAl() metodunuz kullandık ve kuralları tek bir satır kodla tanımlamış olduk.