Welcome Guest, Not a member yet? Register   Sign In
Retrieving all user data into session
#1

[eluser]elektra[/eluser]
Hi I'm fairly new to codeigniter. All I want is to retrieve few selected user data so I could echo them out when they logged in for user profile and stuff. Really need help and running out of time. Thank you.

Controller
Code:
$query = $this->User_model->validate_login();
  
   if($query)
   {
    $data['user_session'] = $this->session->userdata('user');
    redirect('users/dashboard', $data);  
   }
   else
   {
    redirect('users/index');
   }  
  }
Model
Code:
public function validate_login()
{
  $this->db->where('username', $this->input->post('username'));
  $this->db->where('password', sha1($this->input->post('password')));
  $query = $this->db->get('users');
  
  if($query->num_rows == 1)
  {
   $row = $query->row();
      $userdata = array (
    'name' => $row->name,
    'username' => $row->username,
    'email' => $row->email,
    'role' => $row->role
       );
   $this->session->set_userdata('user', $userdata);    
   return TRUE;
  }
   return FALSE;
}
View
Code:
<?php if($this->session->userdata('logged_in') == TRUE): ?>
     Welcome <?php echo $this->session->userdata('name'); ?>, <?php echo anchor('users/logout', 'Logout'); ?>
    <?php else: ?>
     <?php echo anchor('users/login', 'Login'); ?> /
     <?php echo anchor('users/register', 'Register'); ?>
    <?php endif; ?>
#2

[eluser]Samus[/eluser]
Your model should be:

Code:
public function validate_login()
{
  $this->db->where('username', $this->input->post('username'));
  $this->db->where('password', sha1($this->input->post('password')));
  $query = $this->db->get('users');
  
  if($query->num_rows == 1)
  {
   $row = $query->row();
      $userdata = array (
    'name' => $row->name,
    'username' => $row->username,
    'email' => $row->email,
    'role' => $row->role
       );
   $this->session->set_userdata($userdata);    
   return TRUE;
  }
   return FALSE;
}
#3

[eluser]elektra[/eluser]
Still not working. Must I create function in the model for each field I want to retrieve from the database and present it from controller?
#4

[eluser]elektra[/eluser]
[quote author="Samus" date="1333812764"]Your model should be:

Code:
public function validate_login()
{
  $this->db->where('username', $this->input->post('username'));
  $this->db->where('password', sha1($this->input->post('password')));
  $query = $this->db->get('users');
  
  if($query->num_rows == 1)
  {
   $row = $query->row();
      $userdata = array (
    'name' => $row->name,
    'username' => $row->username,
    'email' => $row->email,
    'role' => $row->role
       );
   $this->session->set_userdata($userdata);    
   return TRUE;
  }
   return FALSE;
}
[/quote]

Thank you but how would I call it from the controller?
#5

[eluser]Samus[/eluser]
[quote author="elektra" date="1333820694"][quote author="Samus" date="1333812764"]Your model should be:

Code:
public function validate_login()
{
  $this->db->where('username', $this->input->post('username'));
  $this->db->where('password', sha1($this->input->post('password')));
  $query = $this->db->get('users');
  
  if($query->num_rows == 1)
  {
   $row = $query->row();
      $userdata = array (
    'name' => $row->name,
    'username' => $row->username,
    'email' => $row->email,
    'role' => $row->role
       );
   $this->session->set_userdata($userdata);    
   return TRUE;
  }
   return FALSE;
}
[/quote]

Thank you but how would I call it from the controller?[/quote]

exactly how you would in any controller

$this->User_model->validate_login();
#6

[eluser]elektra[/eluser]
Thank you very much for your help.
In case anybody faces this problem, below is my solution. Thank goodness it worked.

Controller
Code:
public function login()
{
  $this->form_validation->set_rules('username', 'Username', 'required|trim|xss_clean|callback__check_username_exist_login');
  $this->form_validation->set_rules('password', 'Password', 'required|trim|min_length[6]|xss_clean');
  
  if ($this->form_validation->run() == FALSE)
  {
   $data['title'] = 'Login';
   $data['main_content'] = 'users/login';
  
   $this->load->view('template', $data);
  }
  elseif ($this->User_model->validate_login())
  {
    redirect('users/dashboard');  
   }
   else
   {
    redirect('users/index');
   }  
  
}

Model
Code:
public function validate_login()
  {
  $this->db->where('username', $this->input->post('username'));
  $this->db->where('password', sha1($this->input->post('password')));
  $query = $this->db->get('users');
  
  if($query->num_rows == 1)
  {
     $row = $query->row();
     $userdata = array (
       'logged_in' => TRUE,
    'name' => $row->name,
    'username' => $row->username,
    'email' => $row->email,
    'role' => $row->role
   );
   $this->session->set_userdata($userdata);    
      return TRUE;
   }
    return FALSE;
  }




Theme © iAndrew 2016 - Forum software by © MyBB