SourceForge.jp

ちいたんフォーラム

要望 >> バリデートについて

ドッグ 2008-03-19 02:21:23
バリデート機能\についてですが、emailなどの入力があった時のみ検証したい場合がありますが、emailのバリデートをつけると入力が無くてもバリデートを行うようです。
現在配列で複数バリデートが行えるようになっておりますが、大概の場合\"notempty\"とセットで使う事が多いかと思いますが、\"email\"の入力が必需ですとセットで使う利用価値が減るかと思います。出来れば\"email\"だけで入力があった場合のみ検証するように仕様を変更出来ないでしょうか。

返信  パスワード      


ドッグ 2008-04-07 12:24:49
一応以下のように拡張して使っています。
是非取り入れて頂けると幸いです。

-----------------------------------
class CValidate extends CObject
{
function notempty( $data, $errmsg = \"\" )
{
return $this->_check( ( $data !== \'\' ), $errmsg );
}


function len( $data, $min, $max, $errmsg = \"\" )
{
$len = strlen( $data );
$ret = ( $min <= $len && $len <= $max ) ? 1 : 0;
return $this->_check( $ret, $errmsg );
}


function number( $data, $errmsg = \"\" )
{
if(empty($data)){
$data = TRUE;
}else {
$data = is_numeric( $data );
}
return $this->_check( $data , $errmsg );
}


function eisu( $data, $errmsg = \"\" )
{
if(empty($data)){
$data = TRUE;
}else {
$data = preg_match(\"/^[0-9a-zA-Z]+$/\",$data);
}
return $this->_check( $data , $errmsg );
}


function email( $data, $errmsg = \"\" )
{
if(empty($data)){
$data = TRUE;
}else {
$data = preg_match( \'/\\\\A(?:^([a-z0-9][a-z0-9_\\\\-\\\\.\\\\+]*)@([a-z0-9][a-z0-9\\\\.\\\\-]{0,63}\\\\.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)\\\\z/i\', $data );
}
return $this->_check( $data , $errmsg );
}

function kigou( $data, $errmsg = \"\" )
{
if(empty($data)){
$data = TRUE;
}else {
$data = preg_match(\"/^[!-~]+$/\",$data);
}
return $this->_check( $data , $errmsg );
}




function url( $data, $errmsg = \"\" )
{
if(empty($data)){
$data = TRUE;
}else {
$data = preg_match(\'/^(https?|ftp)(:\\/\\/[-_.!~*\\\'()a-zA-Z0-9;\\/?:\\@&=+\\$,%#]+)$/\',$data);
}
return $this->_check( $data , $errmsg );
}

function zenkaku( $data, $errmsg = \"\" )
{
if(empty($data)){
$data = TRUE;
}else {
$data = preg_match(\"/^[^!-~]+$/\",$data);
}
return $this->_check( $data , $errmsg );
}

function _check( $b, $errmsg )
{
if( $b )
{
if( $errmsg ) return \"\";
else return TRUE;
}
else
{
if( $errmsg ) return $errmsg;
else return FALSE;
}
}
}

パスワード