当前位置:编程学习 > php >>

简单编写php验证类,教你如何写好php程序(含多种验证规则)

很多人在开发网站的时候往往只是通过简单的js验证,当你一不小心在js中多写了个逗号或者点号,ie6无法识别就直接跳过验证了。其实最安全的做法还是需要在服务端对用户输入的数据做验证的。本人写了个简单的php验证类,含多种验证规则,供大家学习参考。原文链接


[php] 
<?php 
/**
 * 用户输入规则验证类
 * author   HaiNing Zhang
 * date     2013-05-23
 */ 
class Validate{ 
    // 验证规则  
    private $role_name = array( 
            // 验证是否为空  
            'required', 
 
            // 匹配邮箱  
            'email', 
 
            // 匹配身份证  
            'idcode', 
 
            // 匹配数字  
            'number', 
 
            // 匹配http地址  
            'http', 
 
            // 匹配qq号  
            'qq', 
 
            //匹配中国邮政编码  
            'postcode', 
 
            //匹配ip地址  
            'ip', 
 
            //匹配电话格式  
            'telephone', 
 
            // 匹配手机格式  
            'mobile', 
 
            //匹配26个英文字母  
            'en_word', 
 
            // 匹配只有中文  
            'cn_word', 
 
            // 验证账户(字母开头,由字母数字下划线组成,4-20字节)  
            'user_account', 
        ); 
 
    /**
     * [验证函数]
     * @param  [array] $data                [用户要验证的数据]
     * @param  [array] $validate_role       [验证规则]
     * @param  [array] $validate_err_msg    [错误信息提示]
     * @return [bool]                       [成功返回true, 失败返回错误信息]
     */ 
    public function verify($data, $validate_role, $validate_err_msg=''){ 
        if(empty($data)) return false; 
        if(empty($validate_role)) return false; 
        foreach ($data as $key => $value) { 
            $key = strtolower($key); 
            foreach ($validate_role as $kk => $vv) { 
                $kk = strtolower($kk); 
                if($key == $kk){ 
                    foreach ($vv as $k => $v) { 
                        $k = strtolower($k); 
                        if( !in_array($k, $this->role_name)) return 'role name "'.$k.'" is not found!'; 
                        if($v == true){ 
                            if ( !$this->$k($value) ){ 
                                if (!isset($validate_err_msg[$kk][$k])) 
                                return 'var '.$key.' in '.$k.' of regular validation failure!'; 
                                return $validate_err_msg[$kk][$k]; 
                            } 
                        } 
                    } 
                } 
            } 
        } 
        return true; 
    } 
 
    // 获取规则数组  
    public function get_role_name(){ 
        return $this->role_name; 
    } 
 
    // 设置属性规则  
    public function set_role_name($arr){ 
        $this->role_name = array_merge($this->ro

补充:Web开发 , php ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,