Zend_Validateで値の検証

By katou - 08/10/31 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

携帯サイト作成だけではありませんが、何らかの入力画面で入力された値が

正常な入力値であるかを検証するプログラムを作ることは多々あると思います。

例えば、

・ユーザーが入力した日付は存在するか。

・メールアドレスの形式は正しいのか。

・ユーザー個別のパスワードを英数字だけで管理したい場合、
ユーザーの入力値に全角文字は含まれていないか。

等、他にも様々あると思います。

入力された値を検証するためにPHPの正規表現を駆使して

入力値の判定をする事も大切ですが、

Zend_Validateを使えば、比較的簡単に検証することが出来ます。

特に日付の検証は精度が高く、とても便利です。

さらに値の検証後、不正な値であった場合に返すエラーメッセージも管理しやすいです。

検証出来る項目は様々あり、Validateのクラスによってコーディング方法が少しだけ異なりますが、

基本的な使い方は同じなので、ひとつだけ分かれば他は対応出来ると思いますので

今回はひとつだけご紹介します。

下記コードでメールアドレスの検証を行っていますが、

プログラムの流れを分かりやすくするために、

エラーメッセージを返す仕組みで作っています。

     //メールアドレス用のValidateクラス
    require_once'Zend/Validate/EmailAddress.php';
    
    //メールアドレスとして不正な値を格納
    $address1 = 'keitai.jp';
    
    //正しい形式のメールアレドレスを格納
    $address2 = 'keitai@softbank.ne.jp';
    
    //メールアドレスの検証インスタンスを生成します
    $validator  = new Zend_Validate_EmailAddress();
    
    //検証後、不正な値であった場合に返すエラーメッセージをセット。
    //※ %value%には検証された値が入ります。今回の値はkeitai.jpです。
    $validator->setMessage('%value%は不正なメールアドレスです');
    
    //isValidメソッドを使って検証します。
    if(!$validator->isValid($address1)){
        
        //getMessagesメソッドを使ってsetMassageでセットした値を呼び出します。
        $error_msg = $validator->getMessages();
        
        //エラーメッセージは配列で返されるので、ループします。※今回は一つです。
        foreach($error_msg as $msg){
            echo $msg;
        }
    }else{
    
        echo $address1;
    
    }
Posted in Zend Framework • Tags: Top Of Page