2014-05-21 37 views
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; 
    } 


    } 

}

回答

0

你它有不同的拼寫

在這裏,你在呼喚它urname

$this->form_validation->set_rules('urname', 'Username', 'trim|required'); 

,在這裏它的UNAME

$user = $this->input->post('uname'); 
+0

THX @cartalot,但我離開CI並從頭重新開始。不管怎麼說,還是要謝謝你 –