バリデータ

目次

はじめに

Envi PHPは、ユーザー入力データの検証を行うための強力なバリデーターを用意しています。

フォームヘルパーなどの仕組みと比べると、より柔軟な入力データの検証が行えます。

どこで使用するのが好ましいか

validator()は、EnviMVCのどこからでもアクセスできますが、セキュリティ:バリデータでも述べているとおり、 ActionControllerの::validate()メソッド内で使用し、ハンドリングを行うのがよいでしょう。

サンプルコード

下記にvalidateメソッド内で、validate()を使って、バリデーションを行う処理を記述します。


<?php
/*

 Someting Action Controller Code .....

*/
public function validate()
{
    
// GETの時は、デフォルト
    
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
        return 
Envi::DEFAULT_ACCESS;
    }
    
$validator validator();
    
$validator->autoPrepare(array('email' => 'メールアドレス'), 'noblank'falsefalsevalidator::METHOD_POST);
    
$validator->chain('email''maxwidth'false255);
    
$validator->chain('email''mailsimple'false);


    
$validator->autoPrepare(array('password' => 'パスワード'), 'noblank'falsefalsevalidator::METHOD_POST);
    
$validator->chain('password''maxwidth'false255);
    
$validator->chain('password''roma'false);


    
$res $validator->executeAll();
    if (
$validator->isError($res)) {
        
// return false;でreturn Envi::ERROR;と同義
        
return false;
    }

    
$validator->autoPrepare(array('retype_password' => '再入力パスワード'), 'noblank'falsefalsevalidator::METHOD_POST);
    
$validator->chain('retype_password''equal'false$res['password']);

    
$retype_password $validator->execute('retype_password'false);
    if (
$validator->isError($retype_password)) {
        
// return false;でreturn Envi::ERROR;と同義
        
return false;
    }

    
EnviRequest::setAttribute('email'$res['email']);
    
EnviRequest::setAttribute('password'$res['password']);

    
// return true;でreturn Envi::SUCCESS;と同義
    
return true;
}