您的位置:首页 > 编程语言 > PHP开发

tp自动验证功能

2014-04-24 11:10 239 查看
protected $_validate=array(
array('goods_name','require','商品名不能为空','require'),
array('cat_id','value','分类名只能为整数','number'),
array('goods_number','field','库存名只能为整数','number'),
array('goods_price','field','商品价只能为整数','number'),
array('is_hot','value','数值只能在0和1之间','in','0,1'),
array('is_new','value','数值只能在0和1之间','in','0,1')
);

public function Vadidata($data){

if (!empty($this->_validate)) {
foreach ($this->_validate as $val){

switch ($val[1]){
case 'require':  //必须验证的字段
if(false===$this->VadidateField($data, $val)){

$this->error=$val[2];
return false;
}
break;
case 'value': //有该值就验证
if (''!=trim($data[$val[0]])) {
if(false===$this->VadidateField($data, $val)){
$this->error=$val[2];
return false;
}
}
break;
case 'field':   //有该字段就验证
if (!empty($data[$val[0]])) {
if(false===$this->VadidateField($data, $val)){
$this->error=$val[2];
return false;
}
}
break;
}
}
}
return true;
}

protected function VadidateField($data,$val){
switch ($val[3]){

case 'require':
return !empty($data[$val[0]]);
case 'in':
case 'between':
$parm=explode(',', $val[4]);
$min=min($parm);$max=max($parm);
if ($val[3]=='in') {
return in_array($data[$val[0]], $parm);
}
if ($val[3]=='between') {
return $data[$val[0]]>$min && $data[$val[0]]<$max;
}
case 'number':
return is_numeric($data[$val[0]]);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: