PHP前端后端表单数据验证(一)

<?php
class Class_Check{
    var 
$fields//所有可能的输出域
    
function Class_Check($fields){
        
$this->fields=$fields;
    }


    var 
$formFields;  //本表单的输出域

    
function reset(){
        
$this->formFields=array();
    }

    function 
formSubmit(){
        
$ret="onsubmit='";
        foreach(
$this->formFields as $name=>$key){
            
$reg=$this->fields[$key][0];
            
$name="check_".$key."_".$name;
            
$ret.="ele=document.getElementById(\"$name\");";
            
$ret.="if(!new RegExp(/^$reg$/).test(ele.value)){";
            
$ret.=" ele.onblur();";
            
$ret.=" ele.focus();";
            
$ret.=" return false;";
            
$ret.="}";
        }
        
$ret.="' ";

        return 
$ret;
    }

    function 
output($key,$name,$default='',$class=''){
        
$this->formFields[$name]=$key;

        
$reg=$this->fields[$key][0];
        
$msg=$this->fields[$key][1];
        
$name="check_".$key."_".$name;
        
$msgName=$name."_msg";

        
$output="<input type='text' id='$name' name='$name' ";
        if(
$default)$output.=" value='$delete' ";
        if(
$class)$output.=" class='$class' ";
        
$output.=" onblur='document.getElementById(\"$msgName\").innerHTML=(new RegExp(/^$reg$/).test(this.value) == false)?\"$msg\":\"\";' ";
        
$output.=" />";
        
$output.=" <label id='$msgName' style='color:red'></label>";
        return 
$output;
    }

    function 
valid($trans){
        if(!
$_POST) return false;
        
$ret=array();
        foreach(
$_POST as $postKey=>$value){
            if(
substr($postKey,0,6)!='check_')continue;
            list(
$null,$key,$name)=explode('_',$postKey);

            
$reg=$this->fields[$key][0];
            
$msg=$this->fields[$key][1];
            if(!
preg_match("/^".$reg."$/",$value)){
                if(isset(
$trans[$name]))
                
$ret[$trans[$name]]=$msg;
                else
                
$ret[$name]=$msg;
            }
        }
        if(
count($ret)==0)return true;
        return 
$ret;
    }
}
?>
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(239) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值