/**
燕十八 公益PHP培訓
課堂地址:YY頻道88354001
學習社區:www.zixue.it
**/
/*
格式 $this->_valid = array(
array('驗證的字段名',0/1/2(驗證場景),'報錯提示','require/in(某幾種情況)/between(範圍)/length(某個範圍)','參數')
);
array('goods_name',1,'必須有商品名','requird'),
array('cat_id',1,'欄目id必須是整型值','number'),
array('is_new',0,'in_new只能是0或1','in','0,1')
array('goods_breif',2,'商品簡介就在10到100字符','length','10,100')
*/
public function _validate($data) {
if(empty($this->_valid)) {
return true;
}
$this->error = array();
foreach($this->_valid as $k=>$v) {
switch($v[1]) {
case 1:
if(!isset($data[$v[0]])) {
$this->error[] = $v[2];
return false;
}
if(!$this->check($data[$v[0]],$v[3])) {
$this->error[] = $v[2];
return false;
}
break;
case 0:
if(isset($data[$v[0]])) {
if(!$this->check($data[$v[0]],$v[3],$v[4])) {
$this->error[] = $v[2];
return false;
}
}
break;
case 2:
if(isset($data[$v[0]]) && !empty($data[$v[0]])) {
if(!$this->check($data[$v[0]],$v[3],$v[4])) {
$this->error[] = $v[2];
return false;
}
}
}
}
return true;
}
public function getErr(){
return $this->error;
}
protected function check($value,$rule='',$parm='') {
switch($rule) {
case 'require':
return !empty($value);
case 'number':
return is_numeric($value);
case 'in':
$tmp = explode(',',$parm);
return in_array($value,$tmp);
case 'between':
list($min,$max) = explode(',',$parm);
return $value >= $min && $value <= $max;
case 'length':
list($min,$max) = explode(',',$parm);
return strlen($value) >= $min && strlen($value) <= $max;
default:
return false;
}
}
PHP表單提交數據 - 自動驗證合法性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.