0

Ion Auth の使用を開始し、カスタム ログイン フォームを作成したいと考えています。ユーザーが「送信」ボタンをクリックして検証メッセージが間違っていた後、この入力フォームに現在のユーザー名を保持して表示する方法を知りたいですか? この方法がサイトでよく使われているのを見ましたが、その方法を示す例が見つかりません。

例: 彼が正しいパスワードを持っていない場合...

ユーザーが間違ったパスワードを入力すると、エラーメッセージがポップアップし、[送信] をクリックすると、現在のユーザー名または電子メールが空白になり、入力フォームに保存されません。

UPDATED ここに私の現在のコードがあります:

コントローラ

    public function login() {

    // Validated login form
    $this->form_validation->set_rules('username', 'Username', 'required');
    $this->form_validation->set_rules('password', 'Password', 'required');

    // Get user input form
    $username = $this->input->post('username', TRUE);
    $password = $this->input->post('password', TRUE);

    // If it can't log in
    if ($this->form_validation->run() !== true) {
        $data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); 

        $data['username'] = array(  'name'      => 'username', 
                                    'type'      => 'text',
                                    'value'     => set_value('username') ); 

        $data['password'] = array(  'name'  => 'password',
                                    'type'  => 'password' );

        $data['submit'] = array (        'type' => 'submit',
                                    'value' => 'Login' );   

        // Display login page
        $this->load->view('login', $data);
    } else {
        // User success login
        if ($this->ion_auth->login($username, $password)) {
            $this->session->set_flashdata('message', $this->ion_auth->messages());
            redirect($this->config->item('base_url'), 'refresh');               
        } else {
            // Display error
            $this->session->set_flashdata('message', $this->ion_auth->set_error('Invalid username or password.'));

            redirect('auth/login', 'refresh');
        }
    }
}

意見

<div id='login_form'>
<?php echo form_open("auth/login");?>
    <p><?php echo form_input($username);?></p>
    <p><?php echo form_password($password);?></p>

    <div id="message"><?php echo $message;?></div>
    <p id="submit"><?php echo form_submit($submit);?></p>
<?php echo form_close();?>

4

1 に答える 1

0

falseset_value()の場合、値を保持するために使用します。CodeIgniterは値を保持します。form_validation

例:

<input type="text" 
       name="quantity" 
       value="<?php echo set_value('quantity', '0'); ?>" 
       size="50" />

参照: http ://codeigniter.com/user_guide/helpers/form_helper.html

于 2012-04-27T01:52:50.023 に答える