Codeigniter表单验证:在将输入发送到回调函数之前验证输入

时间:2015-01-17 09:17:14

标签: codeigniter

我使用Codeigniter回调函数(请参见下面的代码),我想知道是否在将输入发送回回函数之前检查输入是否为alpha_numeric,因为我不想传递非 - 我的回调函数的字母数字输入。

$this->form_validation->set_rules('code', 'Code', 'alpha_numeric|callback_check_code');

    public function check_code($value) {        

    $this->model_abc->did_check_code($value);
    $this->form_validation->set_message('check_code', 'Please enter the code correctly.');
        }

更新

我发现在Codeigniter规则中从左到右运行,一旦失败,它就会停止检查并将该字段标记为“未通过验证”。并将邮件设置为第一个失败的规则。因此,如果输入不是字母数字,则输入将不会传递给我的回调函数。

1 个答案:

答案 0 :(得分:1)

如果要为现有库编写自己的规则,请执行以下步骤:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class MY_Form_validation extends CI_Form_validation {

    function __construct($rules = array()) {
        parent::__construct($rules);  
        log_message('debug', '*** Hello from MY_Form_validation ***');
    }


    function check_code($postcode) {
        // Do it according to your need
    }
}

并将文件保存在application/libraries中。有关详细信息,请查看以下链接https://ellislab.com/codeigniter/user-guide/general/creating_libraries.html,并查看扩展本机库

部分

更新:

首先了解hows规则是否有效'alpha_numeric|callback_check_code'验证库逐个检查给定规则并根据错误或值进行设置。表示如果alpha_numericcallback_check_code都验证数据,则返回$this->form_validate->run() == true