0

_callback 関数に少し問題があります。

以下のコードで達成しようとしているのは、次のことです。

  • ユーザーの詳細が正しくない場合、$messageエラーが表示されます (現在は表示されません)。
  • 何も入力せずに送信した場合、「ログインしてください」と表示させたいです。

コントローラ:

public function loginUser() {
    $this->form_validation->set_rules('userEmail','Username', 'required|valid_email|trim|max_length[99]|xss_clean');
    $this->form_validation->set_rules('userPassword','Password', 'required|trim|max_length[200]|xss_clean|callback__checkUsernamePassword');

    if($this->form_validation->run() === TRUE) {

    }
}

折り返し電話:

function _checkUsernamePassword() {
    $username = $this->input->post('userEmail');
    $password = $this->input->post('userPassword');
    $user = $this->user_model->check_login($username,$password);

    if(! $user)
    {
        $data['contentMangement'] = $this->options_model->systemOptions();
        $data['pageTitle'] = 'Add User';
        $data['message'] = form_error('userEmail','<div class="alert alert-error">', '</div>'); 
        $this->load->view('_assets/header', $data);
        $this->load->view('addUser', $data);
        $this->load->view('_assets/footer');
        $this->form_validation->set_message('_checkUsernamePassword', 'Sorry %s is not correct.');
        return FALSE;
    }else{
        echo 'sheepdogs';
        return TRUE;
    }
}
4

1 に答える 1

0

_callback も変更することでこれを解決しました。

 function _checkUsernamePassword() {

        $username = $this->input->post('userEmail');
        $password = $this->input->post('userPassword');

        $user = $this->user_model->check_login($username,$password);

        if(! $user)
        {
            $this->form_validation->set_message('_checkUsernamePassword', 'Sorry the details you provided have not been found');
            return FALSE;
        }else{
            return TRUE;
        }   
}
于 2012-06-13T04:14:36.927 に答える