YzmCMS v7.0 x 表单数据提交验证器

289次浏览 更新日期:2023-12-02 14:41:30 分类:模板插件 评论:4

我们在书写控制器语句在有时候需要做到验证


比如说我要判断提交的某个字段的变量 不能为空 书写起来就很麻烦


如果验证的规则多了就感觉代码一大堆 影响代码的美观 而且效率不高


所以 需要一款表单验证器了


如何使用

把validator.class.php 验证类 放到/yzmphp/core/class目录下 即可


然后 我们需要构建一个模型验证类 可以输出验证规则 以及自定义错误提示


以下是一个示例文件 具体你需要到模块的model目录下新建一个模型类 比如说我新建了一个文件叫test_validate.class.php

<?php
// +----------------------------------------------------------------------
// | Site:  [ http://www.yzmcms.com]
// +----------------------------------------------------------------------
// | Copyright: 袁志蒙工作室,并保留所有权利
// +----------------------------------------------------------------------
// | Author: zhaosong  原创字段验证类 请不要未授权的情况下搬运代码为自己的
// +---------------------------------------------------------------------- 
// | Explain: 这不是一个自由软件,您只能在不用于商业目的的前提下对程序代码进行修改和使用,不允许对程序代码以任何形式任何目的的再发布!
// +----------------------------------------------------------------------
yzm_base::load_sys_class('validator','',0);
class test_validate extends validator
{
   /**
    * @书写验证规则
    * @author zhaosong
    * @date 2023-11-03
    */
	protected $rules = [
        'model' => 'required|min:6',
        'end'=>'required'
	];
	
    /**
    * @自定义错误信息提示
    * @author zhaosong
    * @date 2023-11-03
    */
	protected $messages = [
        'model.required' => 'model模型不能为空',
        'model.min' => 'model字段最少需要6位',
        'end.isnumber' => 'end这个字段必须为数字',
        'end.required'=>'这个字段不能为空!!!'
	];
	
	
}


我们可以到表单方法中使用 列如

<?php
// +----------------------------------------------------------------------
// | Site:  [ http://www.yzmcms.com]
// +----------------------------------------------------------------------
// | Copyright: 袁志蒙工作室,并保留所有权利
// +----------------------------------------------------------------------
// | Author: YuanZhiMeng // +---------------------------------------------------------------------- 
// | Explain: 这不是一个自由软件,您只能在不用于商业目的的前提下对程序代码进行修改和使用,不允许对程序代码以任何形式任何目的的再发布!
// +----------------------------------------------------------------------
defined('IN_YZMPHP') or exit('Access Denied');
class test {
    
    // 请注意这只是一个测试模块 请按照你需求来设置验证规则 以下是在add方法中
    // 获取的表单参数提交给验证模型 验证数据是否符合验证规则
    public function add(){
        
        if(is_post()) {
            // 加载了模型验证类
            yzm_base::load_model('test_validate', '', 0);
            //  这里把提交的参数传递给模型验证类
		    $validator = new test_validate($_POST);
		    $isValid = $validator->check();
            if($isValid){
                // 如果验证规则不符合就会回调错误信息 没有信息回调就是验证通过的意思
               return_message($isValid, 0);
            }
            
        }
    }
    
    
}

基本验证规则就是这样 我们来查看效果

image.png

我们在字段为空的时候 会错误提示 该字段不能为空 这是英文的 如果 我们需要实现自定义提示信息


我们可以在模型验证类中写


protected $messages = [
  'end.required'=>'这个字段不能为空!!!'
];


看看效果

image.png


基本使用

我们可以一个提交变量字段验证多个规则 列如

protected $rules = [
   'model' => 'required|min:6',
    'end'=>'required'
];

先验证 不能为空 后验证 字符串最少6为 使用分号隔开


然后再验证下一个需要验证的字段


如果字段有多个验证规则 我们需要分开设置多个自定义提示信息列如


protected $messages = [
   'model.required' => 'model模型不能为空',
   'model.min' => 'model字段最少需要6位',
];


这块应该是可以理解的 那我们看看内置多少验证规则可以写


验证规则

验证某个字段必须,例如:

'name'=>'require'

验证某个字段的值是否为纯数字例如:

'num'=>'number'

验证某个字段的值是否为整数,例如:

'num'=>'integer'

验证某个字段的值是否为浮点数字,例如:

'num'=>'float'

验证某个字段的值是否为布尔值,例如:

'num'=>'boolean'

验证某个字段的值是否为email地址,例如:

'email'=>'email'

验证某个字段的值是否为数组,例如:

'info'=>'array'

验证某个字段的值是否为字符串,例如:

'info'=>'string'

验证值是否为有效的日期,例如:

'date'=>'date'

验证某个字段的值是否为纯字母,例如:

'name'=>'alpha'

验证某个字段的值是否为字母和数字,例如:

'name'=>'alnum'

验证某个字段的值只能是汉字,例如:

'name'=>'hanzi'

验证某个字段的值只能是汉字、字母和数字,例如:

'name'=>'hanzi_alnum'

验证某个字段的值只能是汉字、字母、数字和下划线_及破折号-,例如:

'name'=>'hanzi_alnum_dash'

验证某个字段的值只能是控制字符(换行、缩进、空格),例如:

'name'=>'control_chars'

验证某个字段的值只能是小写字符,例如:

'name'=>'lowercase'

验证某个字段的值只能是大写字符,例如:

'name'=>'uppercase'

验证某个字段的值只能是空白字符(包括缩进,垂直制表符,换行符,回车和换页字符),例如:

'name'=>'whitespace'

验证某个字段的值是否为有效的域名或者IP,例如:

'host'=>'domain_or_ip'

验证某个字段的值是否为有效的URL地址,例如:

'url'=>'url'

验证某个字段的值是否为指定格式的日期,例如:

'dates'=>'dates'

验证某个字段的值是否为有效的手机,例如:

'mobile'=>'phone'

验证某个字段的值是否为有效的身份证格式,例如:

'id_card'=>'id_card'

验证某个字段的值的最大长度,例如:

'name'=>'max_length:25'

验证某个字段是否和另外一个字段的值一致,例如:

'repassword'=>'same:11'

验证某个字段是否以某个字符串开头,例如:

'name'=>'starts_with:yzmcms'

验证某个字段是否以某个字符串结尾,例如:

'name'=>'ends_with:yzmcms'

验证某个字段是否以包含某个字符串,例如:

'name'=>'contains:yzmcms'

验证是否等于某个值,例如:

'score'=>'equals:100'

验证是否大于等于某个值,例如:

'score'=>'greater_than_equal:60'

验证是否小于等于某个值,例如:

'score'=>'less_than_equal:100'

最后

未经允许本人授权 严谨搬运至某盗版中使用 源码原创所写 使用灵活


想使用但不懂 可以提出问题 我给你解决 谢谢!!

附件下载:


登录后可查看详情!

我来说两句
  • yzmcms
    yzmcms 官网认证 2月前
    给你点个赞!
    1
    回复
  • wukeke
    wukeke 2月前
    厉害了!
    0
    回复
  • 给你点个赞!
    0
    回复
  • oolaile
    oolaile 2月前
    虽然暂时用不上也不懂,评论一下证明我还活着。
    0
    回复
作者信息
发布见解
发内容 回顶部