Radu033 Radu033 - 29 days ago 12
PHP Question

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;

Answer
<?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');
    }

}