php get提交多个参数,php实现post或get多参数批量校验功能

在有些表单中,字段很多很多,字段类型、长度、格式等都有可能不一样,一个一个的去判断有时候会很麻烦,还不方便升级,来看看我自己整理的方法吧,在原生php中用的,简单的系统中用得到,如果用框架来弄的话不少框架都有自己的解决方案,来看看我的//需要的参数

$canshu=array(

//参数名    错误值,错误提示信息

'id'=>array('','参数错误'),

'xingming'=>array('','请输入姓名'),

'dianhua'=>array('','请提供电话'),

'status'=>array('','请选择正确的状态'),

'remark'=>array('','')

);

//得到post参数,多余的参数会被过滤掉

foreach($_POST as $kp=>$vp){

if(array_key_exists($kp,$canshu)){

$canshu[$kp][0]=htmlspecialchars($vp,ENT_QUOTES);

}

}

//比较必要参数及记录对应值

$sql_keyvalue="";

$tmp_status=array(0,1,2,3);//可选值校验

foreach($canshu as $k2=>$v2){

if($k2=='id'){

//对id进行判断,如:是否正整数,记录是否存在等等

}

else if($k2=='status'){

if(!in_array($v2[0],$tmp_status)){

//ShowMsg($v2[1]);//提示错误信息,

}

}else{

//无需核验的参数

}

$sql_keyvalue.=$sql_keyvalue==""?$k2."='$v2[0]'":','.$k2."='$v2[0]'";

}

//修改记录的sql语句

$sql='update table set '.$sql_keyvalue.' where id='.$canshu['id'][0];

//添加记录的sql语句也可以拼接出来

此处只是进行了是否为空的判断,最好的方法是在数组中加入一个正则表达式,

例如id字段'id'=>array('0','^[0-9]{1,30}$','参数错误')

通过表达式来验证,比如id、电话、邮箱、用户名等都可以用正则表达是来验证,每个参数写上自己的正则就行,

附上常用的正则表达式array(

array('value'=>'','text'=>'请选择验证方式'),

array('value'=>'^[\u4e00-\u9fa5\a-zA-Z0-9]+$','text'=>'英文数字汉字'),

array('value'=>'^[A-Za-z]+$','text'=>'英文大小写字符'),

array('value'=>'^[1-9]\d*|0$','text'=>'0或正整数'),

array('value'=>'^[0-9]{1,30}$','text'=>'正整数'),

array('value'=>'^[-\+]?\d+(\.\d+)?$','text'=>'小数'),

array('value'=>'\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*','text'=>'邮箱'),

array('value'=>'^13[0-9]{9}$|^15[0-9]{9}$|^18[0-9]{9}$','text'=>'手机'),

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值