1
我正在使用codeigniter,我在同一個控制器中有兩個驗證,一個正常工作,但另一個沒有驗證。這是不起作用的。請幫助我堅持這個現在一段時間...Codeigniter表單驗證總是返回False 3
public function validate_login() {
$this->load->library('form_validation');
$this->form_validation->set_error_delimiters('<span class=error>', '</span>');
$this->form_validation->set_rules('shopname','Shop Name','trim|required');
$this->form_validation->set_rules('urname', 'Username', 'trim|required');
$this->form_validation->set_rules('password', 'Password', 'trim|required|callback_check_database');
if($this->form_validation->run() == FALSE) {
echo"no";
$this->login();
}
else {
redirect('/user/demo','refresh');
}
}
public function check_database($password) {
$this->load->model('user_model');
$shop = $this->input->post('shopname');
$user = $this->input->post('uname');
$result = $this->user_model->check_login($shop, $user, $password);
if($result)
{
$sess_array = array();
foreach($result as $row)
{
$sess_array = array(
'owner_id' => $row->owner_id,
'shopname' => $row->shopname,
'username' => $row->username
);
$this->session->set_userdata('logged_in', $sess_array);
}
return TRUE;
}
else
{
$this->form_validation->set_message('check_database', 'Invalid username or password');
return FALSE;
}
這裏是模型:
public function check_login($shopname, $username, $password) {
$this->db->select('owner_id, shopname, username, password');
$this->db->from('Owner');
$this->db->where('shopname = ' . "'" . $shopname . "'");
$this->db->where('username = ' . "'" . $username . "'");
$this->db->where('password = ' . "'" . MD5($password) . "'");
$this->db->limit(1);
$query = $this->db->get();
if($query->num_rows() == 1)
{
return $query->result();
}
else
{
return false;
}
}
}
THX @cartalot,但我離開CI並從頭重新開始。不管怎麼說,還是要謝謝你 –