我很確定我錯過了一些非常明顯的東西,但在我眼中我無法弄清楚什麼。空表單驗證工作正常,但是當我在輸入框中輸入任意值並單擊登錄時,它顯示'This is working fine';
,所以我有一種感覺,它與我的回調函數有關。CodeIgniter:驗證不停止
我想說明的是這樣的人可以用自己的用戶名和密碼登錄
驗證:
'loginUser' => array(
array(
'field' => 'userLoginUsername',
'label' => 'Username',
'rules' => 'trim|required|xss_clean'
),
array(
'field' => 'userLoginPassword',
'label' => 'Password',
'rules' => 'trim|required|callback__check_login|xss_clean|sha1'
)
)// End of login user array
回調:
function _check_login($username, $password)
{
if($this->users_model->login_check($username,$password))
{
$this->form_validation->set_message('_check_login', 'Sorry you have entered an incorrect %s ');
return FALSE;
}else{
return TRUE;
}
}
控制器:
function login()
{
if($this->form_validation->run('loginUser') == FALSE)
{
$data['success'] = '';
}else{
echo 'This is working fine';
}
$data['companyName'] = $this->core_model->companyDetails()->coreCompanyName;
$data['pageTitle'] = "User Login";
$this->load->view('frontend/assets/header', $data);
$this->load->view('frontend/user_login', $data);
$this->load->view('frontend/assets/footer');
}
}
型號:
function login_check($username, $password)
{
$this->db->select('userName,userEmail,userPassword');
$this->db->from('users');
$this->db->where('userName', $username, 'userEmail', $username, 'userPassword' , $password, 'userActive', 1);
$query = $this->db->get();
if($query->num_rows() == 1)
{
return TRUE;
}else{
return FALSE;
}
}
查看:
<h1><?php echo $companyName; echo nbs(1);?> - <?php echo $pageTitle; ?></h1>
<div class="formComments">
<p class="error"><?php echo validation_errors();?></p>
<p class="success"><?php echo $this->session->flashdata('success'); ?></p>
</div>
<div class="user_login">
<form class="form-inline" method="POST" action="login" >
<input type="text" name="userLoginUsername" id="userLoginUsername" class="input-small" placeholder="Username">
<input type="password" name="userLoginPassword" id="userLoginPassword" class="input-small" placeholder="Password">
<button type="submit" class"btn">Login</button>
</form>
</div>
嘿,我試過了,但它似乎沒有通過任何登錄值,只是給check_login。我還更新了我的問題模型,因爲如果帳戶處於活動狀態,我希望帳戶登錄。如果該帳戶未處於活動狀態,我將如何處理該帳戶。那是否會使用if else(value)? – 2012-03-08 01:19:26