验证Codeigniter中的字符

时间:2016-09-22 21:21:27

标签: php codeigniter

我正在开发CI支持Grocery CRUD的应用程序,但在验证时无法识别,我需要的是一个字段被验证为只接受字母字符,加上点,逗号和空格但不起作用:

Function in controller

我称之为函数solo_letras的Grocery CRUD函数中的代码行:

Lines of code in method of Grocery CRUD

可能会采取什么样的验证?

1 个答案:

答案 0 :(得分:0)

在CodeIgniter中使用内置表单验证。 我是这样做的。 在函数开头设置表单输入的所有规则,如下所示:

$this->form_validation->set_rules('inputFirstName', 'First Name', required|min_length[4]|max_length[16]|is_unique[users.username]');

这是用户名字段的示例。第一个参数是表单输入name='inputFirstName',第二个参数是第一个的可读版本,用于错误报告,然后是您的验证,由管道字符分隔。有匹配正则表达式的验证; regex_match[/regex/]

然后使用所有验证:

if($this->form_validation->run() == false) {
            Do something here if validation fails
            return false;
        }

测试验证。 如果验证通过,则继续使用代码。

以下是简单注册功能的完整示例:

public function register()
    {

        $this->output->set_content_type('application_json');

        $this->form_validation->set_rules('inputUsername', 'User Name', 'required|min_length[4]|max_length[16]|is_unique[users.username]');
        $this->form_validation->set_rules('inputEmail', 'Email', 'required|valid_email|is_unique[users.email]');
        $this->form_validation->set_rules('inputFirstname', 'First Name', 'required|max_length[20]');
        $this->form_validation->set_rules('inputLastname', 'Last Name', 'required|max_length[20]');
        $this->form_validation->set_rules('inputPassword', 'Password', 'required|min_length[6]|max_length[16]|matches[inputPasswordConfirm]');
        $this->form_validation->set_rules('inputPasswordConfirm', 'Password Confirmation', 'required');

        if($this->form_validation->run() == false) {
            $this->output->set_output(json_encode(['result' => 0, 'error' => $this->form_validation->error_array()]));
            return false;
        }

        $username = $this->input->post('inputUsername');
        $email = $this->input->post('inputEmail');
        $firstName = $this->input->post('inputFirstname');
        $lastName = $this->input->post('inputLastname');
        $password = $this->input->post('inputPassword');
        $passwordConfirm = $this->input->post('inputPasswordConfirm');

        $this->load->model('user_model');
        $user_id = $this->user_model->insert([
            'username' => $username,
            'email' => $email,
            'firstName' => $firstName,
            'lastName' => $lastName,
            'password' => hash('sha256', $password . PASSWORD_SALT)
        ]);

        if($user_id) {
            $this->session->set_userdata(['user_id' => $user_id]);
            $this->output->set_output(json_encode(['result' => 1]));
            return false;
        }

        $this->output->set_output(json_encode(['result' => 0, 'error' => "User not created."]));

    }