ci表单验证

3 篇文章 0 订阅

做ci的表单验证中间遇到了几个坑,下面做一下总结以便查阅

view:validate_view.php

controller:validate.php

class Validate extends MY_Controller
{
    //构造器
    public function __construct()
    {
        parent::__construct();
        $this->load->model('validate_model');
        $this->load->helper(array('form'));//输出错误信息和表单数据回显需要
        $this->load->library('form_validation');//表单验证需要加载

    }
    /**
     * 显示演示页面
     */
    public function index()
    {   
        $this->load->view('/validate/validate_view');
    }

   public function save()
    {
        // 后端数据验证
        $this->form_validation->set_rules('logname', '登录名', 'trim|strip_tags|required|min_length[5]|max_length[10]');//设置登录名的验证规则
        $this->form_validation->set_rules('logpw', '登录密码', 'trim|strip_tags|required|min_length[6]|max_length[10]');//设置登录密码的验证规则
        $this->form_validation->set_rules('relogpw', '确认密码', 'trim|strip_tags|required|min_length[6]|max_length[10]|matches[logpw]');//再次登录密码的验证规则
        $this->form_validation->set_rules('orgemail', '邮箱地址', 'trim|strip_tags|required|valid_email');//邮箱的验证规则
        $this->form_validation->set_rules('orgcontactor', '手机号码',array('required','regex_match[/^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(14[0-9]{1}))+\d{8})$/]'));
        $this->form_validation->set_rules('orgphone', '电话号码',array('required','regex_match[/^(?:(?:0\d{2,3})-)?(?:\d{7,8})(-(?:\d{3,}))?$/]'));
        
        $this->form_validation->set_error_delimiters('<span>', '</span>');//设置错误信息显示的定界符默认以<p>为定界符

        $this->form_validation->set_message('required', '{field}不能为空');//自定义错误提示信息
        $this->form_validation->set_message('min_length', '{field}长度不能小于{param}');
        $this->form_validation->set_message('max_length', '{field}长度不能大于{param}');
        $this->form_validation->set_message('valid_email', '{field}格式有误');
        $this->form_validation->set_message('regex_match', '{field}格式有误');

        if($this->form_validation->run() == FALSE){  //数据校验失败重回view页
            $this->load->view("/validate/validate_view");
        }else{

            //数据校验成功收集数据入库
          
        }   
    }

}

相关说明:

1.set_rules有三个参数  第一个参数是待校验元素的name值, 第二个参数为给待校验元素起的个性化名可以在错误信息中显示,第三个参数为校验规则

 测试中requied规则是必须的即不能省, 当用正则表达式做验证规则时必须写成数组的形式否则会报错如图所示

2.set_message第一个参数为验证规则 第二个参数为验证失败时要显示的错误信息  {field}会取代待校验元素的个性化名

如果不自定义错误信息会显示默认错误信息 /system/language/english/form_validation_lang.php想更改默认错误信息参照ci的语言类

3.view 端的set_value('elementname')验证失败后重回validate_view时回显提交的name=elementname元素的value值

4.form_error('elementname')验证失败后重回validate_view时输出name=elementname元素的校验错误信息

5.别忘了控制器里 $this->load->helper(form);//输出错误信息和表单数据回显需要
                                  $this->load->library('form_validation');//表单验证需要加载


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值