My Controller.
//Load Login Page------------------------------------------------------------------------------------------------------------------------------------------------------------
function login(){
$this->load->helper('form');
$data['title'] = "Login";
$this->load->view("view_header",$data);
$this->load->view("view_login", $data);
}
//Login Validation------------------------------------------------------------------------------------------------------------------------------------------------------------
public function login_validation(){
$this->load->library('form_validation');
$this->form_validation->set_rules('Username', 'Username', 'required|trim');
$this->form_validation->set_rules('Password', 'Password', 'required|trim|md5');
if ($this->form_validation->run()){
redirect('site/members');
}
else{
$this->load->view('view_header');
$this->load->view('view_login');
}
}
public function validate_credentials(){
$this->load->model('model_users');
if ($this->model_users->canLogin()){
return true;
}
else{
$this->form_validation->set_message('validate_credentials', 'Incorrect username or password');
return false;
}
}
//Load Members Page------------------------------------------------------------------------------------------------------------------------------------------------------------
public function members(){
$data['title'] = "Members";
$this->load->view('view_header');
$this->load->view("view_members", $data);
}
My Model
class Model_users extends CI_Model {
public function canLogin(){
$this->db->where('Username', $this->input->post('Username'));
$this->db->where('Password', md5($this->input->post('Username')));
$query = $this->db->get('user_registration');
if ($query->num_rows() == 1){
return true;
}
else{
return false;
}
}
My Form
<?php
echo form_open('site/login_validation');
echo form_label('Username:', 'Username');
echo form_input('Username');
echo "<br>";
echo form_label('Password:', 'Password');
echo form_password('Password');
echo "<br>";
echo form_submit('Login', 'Login');
echo validation_errors();
echo form_close();
?>
Can't seem to get my Username and Password to validate. It allows me to access the members page without an existing account. Can't find the problem since I've been following Youtube tutorials.
Try this code and use callback function in form validation you may need to make in routes.php $route['login'] = "login/index";
Do not use MD5 only use it for testing.
class Login extends CI_Controller {
public function index() {
$this->load->library('form_validation');
$this->load->helper('form');
$this->load->helper('url');
$data['title'] = "Login";
$this->form_validation->set_rules('Username', 'Username', 'required|trim|callback_validate_credentials');
$this->form_validation->set_rules('Password', 'Password', 'required|trim|md5');
if ($this->form_validation->run() == FALSE ){
$this->load->view('view_header');
$this->load->view('view_login');
} else{
redirect('site/members');
}
}
public function validate_credentials(){
$this->load->library('form_validation');
$this->load->model('model_users');
if ($this->model_users->canLogin()){
return true;
} else{
$this->form_validation->set_message('validate_credentials', 'Incorrect username or password');
return false;
}
}
}
View
<?php
echo form_open('login');
echo form_label('Username:', 'Username');
echo form_input('username'); // Lower case
echo "<br>";
echo form_label('Password:', 'Password');
echo form_password('password'); // Lower case
echo "<br>";
echo form_submit('Login', 'Login');
echo validation_errors();
echo form_close();
?>