表单验证类

浏览:4199 最后更新:2015-05-10 17:29 分类:类库
根据TP4.0 里面的代码 修改

支持闭包 可以验证后 修改 数据值

上使用代码$data = array(
    'title'    => 'title',
    'content'  => 'content',
    'userID'   => 'userID',
    'verify'   => '11',
    'value'    => '3',
    'password' => 'password',
);


$validate = new Validate();

$validate
    ->insert_rule('title', 'require', '验证必须!')
    ->insert_rule('repassword', 'require', '正则验证不通过', Validate::VALIDATE_EXISTS, Validate::TYPE_REGEX)
    ->valid($data);

$validate->rule([


    array('verify', 'require', '验证码必须!'), //默认情况下用正则进行验证
    array('repassword', 'require', '正则验证不通过', Validate::VALIDATE_EXISTS, Validate::TYPE_REGEX),


    /**
     * 内置方法
     */
    array('value', array(1, 2, 3), '值的范围不正确!', Validate::VALIDATE_EXISTS, Validate::TYPE_IN),
    array('value', array(1, 2, 3), '值不能在范围内!', Validate::VALIDATE_EXISTS, Validate::TYPE_NOT_IN),
    array('value', array(1, 10), '值必须在1-10之间!', Validate::VALIDATE_EXISTS, Validate::TYPE_BETWEEN),
    array('value', array(1, 10), '值不能在1-10之间!', Validate::VALIDATE_EXISTS, Validate::TYPE_NOT_BETWEEN),
    array('value', '值', '相等!', Validate::VALIDATE_EXISTS, Validate::TYPE_EQUAL),
    array('value', '值', '不能相等!', Validate::VALIDATE_EXISTS, Validate::TYPE_NOT_EQUAL),

    array('value', '1,10', '长度不在1-10之间!', Validate::VALIDATE_EXISTS, Validate::TYPE_LENGTH),
    array('value', '1', '长度不等于1!', Validate::VALIDATE_EXISTS, Validate::TYPE_LENGTH),

    /**
     * 根据 NOW_TIME 常量判断
     */
    array('value', '1,144444', '当前时间不在该时间内!', Validate::VALIDATE_EXISTS, Validate::TYPE_EXPIRE),

    /**
     * 验证为 $_SERVER['REMOTE_ADDR']
     */
    array('value', '192.168.1.1,192.168.1.2', '只允许  192.168.1.1,192.168.1.2 中使用', Validate::VALIDATE_EXISTS, Validate::TYPE_IP_ALLOW),
    array('value', '192.168.1.1,192.168.1.2', '192.168.1.1,192.168.1.2 禁止使用!', Validate::VALIDATE_EXISTS, Validate::TYPE_IP_DENY),


    array('repassword', 'password', '确认密码不正确', Validate::VALIDATE_EXISTS, Validate::TYPE_CONFIRM), // 验证确认密码是否和密码一致

    /**
     * 函数调用 和闭包支持
     */
    array('password', 'function_name', '密码格式不正确', Validate::VALIDATE_EXISTS, Validate::TYPE_CALLBACK, array()), // 自定义函数验证密码格式
    array('password', '', '密码格式不正确', Validate::VALIDATE_EXISTS, function ($val) use (&$data) {
        if (mb_strlen($val, 'GBK') <= 10) {
            // 闭包支持修改数据
            $data['user'] = "guest";
            return false;
        }
        return true;
    }), // 闭包验证
]);

// 单条验证
$validate->check("test", 'test', Validate::TYPE_EQUAL);

if (!$validate->valid($data)) {
    // 显示错误
    var_dump($validate->getError());
}

var_dump($data);
评论( 相关
后面还有条评论,点击查看>>