私は最初にこの機能のロジックを紙に描いたので、これをどこに使用するかはある程度意味がありました。フォームを作成しました。フォームは送信時にコントロールクラスのメソッドを呼び出し、チェックのためにモデルに送信されます。
私はコントローラーのロジックが正しいと信じているので、モデルクラス内のメソッドに問題があると思います。
function validate()
{
$this->db->where('username', $this->input->post('username'));
$this->db->where('password', $this->input->post('password'));
$query = $this->db->get('membership');
return $query;
}
ブール値のように、$queryがtrueまたはfalseを返すことを期待していました。代わりに、入力されたデータがデータベース内のデータと一致するかどうか、または完全に間違っているかどうかに関係なく、その出力が真であるように見えます。以下は、コントローラークラスのメソッドです。
function validate_credentials()
{
$this->form_validation->set_rules('username', 'username', 'required');
$this->form_validation->set_rules('password', 'password', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->createAdminForm();
}
else
{
$this->load->model('admin_Model');
$query = $this->admin_Model->validate();
if($query)
{
redirect('pages');
}
else // incorrect username or password
{
$this->createAdminForm();
}
}
}