Welcome to Abdul Malik Ikhsan's Blog

Zend Framework : Zend_Filter vs Zend_Validate – Filtering vs Validation

Posted in Tutorial PHP, Zend Framework by samsonasik on May 17, 2011

Definisi dasar dari filter dapat diartikan menghapus porsi yang tidak diinginkan dari sebuah input, dan membiarkan porsi yang diinginkan lewat dan tampil dalam output. Filtering sangat berguna pada aplikasi web untuk menghapus ilegal input, trimming white space yang tidak perlu, dan lain sebagainya.
Definisi dasar dari filter dapat diperluas untuk mencakup transformasi atas input yang dimasukkan. Transformasi yang banyak digunakan adalah escape HTMLEntities untuk meminimalisir lubang keamanan ( contoh : dari javascript ).

Lain halnya dengan validator, validator memeriksa input sehubungan dengan beberapa persyaratan yang memberikan nilai balik boolean true/false – apakah input berhasil divalidasi berdasar persyaratan yang diberikan.Sebagai contoh, sebuah aplikasi web memberi persyaratan bahwa username  harus lebih dari atau sama dengan 7 karakter dan kurang dari atau sama dengan 15 karakter.

Penggunaan dasar Filter :
Dengan mengimplemenasikan interface Zend_Filter_Interface , Class Filter spesifik ( semisal Zend_Filter_StringToUpper ) meng-implementasi-kan method filter(). Penggunaanya  seperti berikut :

    $email = "samsonasik@gmail.com";
    $filterchain = new Zend_Filter_StringToUpper();
    $email = $filterchain->filter($email);

Penggunaan dasar Validator :
interface Zend_Validate_Interface mempunyai dua method,  getMessages() yang mengembalikan pesan kesalahan, diimplementasikan oleh abstract class Zend_Validate_Abstract , dan isValid() yang me-return  boolean value yang menentukan nilai kevalidan input, diimplementasikan oleh class validator spesifik ( semisal Zend_Validate_EmailAddress) , penggunaanya seperti contoh berikut :

    $email = "samsonasik@gmail.com";
    $validator = new Zend_Validate_EmailAddress();
    if ($validator->isValid($email)) {
        echo "email is valid ";
    } else{
        foreach ($validator->getMessages() as $key => $message) {
            echo " $message <br />";
        }
    }

Kedua Filter dan Validator ini dapat dilakukan bersama-sama seperti contoh berikut :

    $validator = new Zend_Validate_EmailAddress();
    $email = "samsonasik@gmail.com";

    $filterchain = new Zend_Filter_StringToUpper();
    $email = $filterchain->filter($email);

    $filterchain2 = new Zend_Filter_StringToLower();
    $email = $filterchain2->filter($email);

    if ($validator->isValid($email)) {
        echo "horayyy, $email is valid for email format ";

        $validator2 = new Zend_Validate_StringLength(array('min'=>7,'max'=>15));
        if ($validator2->isValid($email)){
            echo " and has valid length ";
        } else{
            echo " <strong>but</strong> ";
            foreach ($validator2->getMessages() as $messageId => $message) {
                echo " $message <br />";
            }
        }
    }else{
        foreach ($validator->getMessages() as $messageId => $message) {
            echo " $message <br />";
        }
    }

Semoga bermanfaat 🙂

Referensi :
http://framework.zend.com/manual/en/zend.filter.introduction.html
http://framework.zend.com/manual/en/zend.validate.introduction.html
Secure Application Development with the Zend Framework, Stefan Esser

Image :

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: