check()
ユーザー名とパスワードをチェックする次の機能を備えた codeigniter コントローラーがあります。
http://localhost/prakash/modules/index.php/login/login/login/login/login/login/check
(ビューから)フォームを送信するたびに、上記のリンクが生成されます。どうすればそれを克服できますか。redirect('login')
代わりにコントローラーで使用することもできまし$this->load->view('login/login_form');
たが、そのようにすると、フォームに検証エラーが表示されません。
私のコントローラーは
function check(){
$this->form_validation->set_rules('username', 'Username', 'required');
if($this->form_validation->run()==FALSE){
$this->load->view('login/login_form');
}else{
$this->load->model('loginModel');
$query = $this->loginModel->validate();
if($query){
$data = array('username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
//redirecting to appropriate page
redirect('success');
}else{
$this->session->set_flashdata('loginCheck','Username/Password Comination Incorrect!');
redirect('login');
}
}
}
私の見解は
<section class="main">
<form class="form-1" action="login/check" method="post">
<?php echo "<p class=\"text-error\">{$this->session->flashdata('loginCheck')}</p>"; ?>
<?php echo validation_errors(); ?>
<p class="field">
<input type="text" name="username" placeholder="Username or email">
<i class="icon-user icon-large"></i>
</p>
<p class="field">
<input type="password" name="password" placeholder="Password">
<i class="icon-lock icon-large"></i>
</p>
<p class="submit">
<button type="submit" name="submit"><i class="icon-arrow-right icon-large"></i></button>
</p>
</form>
</section>