loliki
loliki

Reputation: 957

Codeigniter multiple controllers

I'm creating a todo list with registration. I named my default controller main and use it to register/login, on localhost the index page looks like http://localhost/todo/main/ however, after logging in I don't want to show localhost/main/todolist but rather localhost/todolist do I have to create a new controller for that? Is it practical to use multiple controllers in CI?

My routes.php now is

$route['default_controller'] = 'main';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

Upvotes: 0

Views: 362

Answers (1)

Habib Rehman
Habib Rehman

Reputation: 618

<?php

  public function login_validation(){
    $this->load->library('form_validation');

    $this->form_validation->set_rules('email','Email','required|trim|callback_validate_credentials');
    $this->form_validation->set_rules('password','Password','required|md5|trim');

    /*******************************
     Little modification so that i'll come in this block if form has everything right in it 
    **********************************/  
    if($this->form_validation->run() !== FALSE){

     /******************
      Also you should now check these user inputs against DB values to make sure if this user exists. you may use e.g 
      ***************/
       $result = $this->db->get_where('table_name',array('table_colum',$this->input->post('form_field_name')))->row();
     if($result)
     {
        $data = array(
            'username'=>$this->input->post('username'),
            'email'=>$this->input->post('email'),
            'is_logged_in'=> 1
            );
        $this->session->set_userdata($data);

        // This should be the new controller where you want to take 
        // your user but by passing its ravelent data, you can do it like 

         redirect('lists',$data); 
       //create new controller and put that name here for 'lists'
    } else {
        $this->load->view('login');
    }

}

Upvotes: 1

Related Questions