0
<?php

class Form extends CI_Controller {

    public function index()
    {
        $this->load->helper(array('form', 'url'));

        $this->load->library('form_validation');

        $this->form_validation->set_rules('email', 'Email', 'required|valid_email');
        $this->form_validation->set_rules('password', 'Password', 'required');
        $this->form_validation->set_rules('confpassword', 'Password', 'required|matches[password]', 'callback__matcherror');



        //$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
        //$this->form_validation->set_rules('email', 'Email', 'required');

        if ($this->form_validation->run() == FALSE)
        {
            $this->load->view('login');

        }
        else
        {

            $this->load->view('insert_dream');

        }

    }

public function _matcherror() {
    $this->form_validation->set_message('_matcherror', 'Passwords should match');
    return FALSE;
}

}
?>

私はコードイグナイターの初心者です。上記のコードでは、パスワードが一致する必要があるというエラー メッセージが表示されません。コールバックに何か問題がありますか、または何か不足していますか。

4

3 に答える 3

0

callback__matcherror関数の 4 番目のパラメーターとして渡していset_rulesます。3 番目のパラメーターである必要があります。このように使う

$this->form_validation->set_rules('confpassword', 'Password', 'required|matches[password]|callback__matcherror');

ノート

パスワード フィールドが一致すると、このエラー メッセージが表示されます。これは、3 つのルールを適用しているためです。2 番目のルールが成功すると、3 番目のルール (call_back_function) が適用されます。パスワードが一致すると、2 番目のルールが有効になります。

于 2015-04-29T09:18:22.307 に答える
0

ここを見てください。コールバックを行う必要はありません。

于 2015-04-29T10:39:11.357 に答える
0
matches[password]

パスワードを自動的にチェックします。コールバック関数を使用する必要はありませんcallback__matcherror

于 2015-04-29T10:18:38.973 に答える