Welcome Guest, Not a member yet? Register   Sign In
Problem with Session after upgrading to 2.0.3
#1

[eluser]grolle[/eluser]
Hi,

I use a small user authentication class. It works fine but after upgrading from 2.0.1 to 2.0.3 all session userdate is lost after doing a redirect. First some code:
Code:
//Auth library

class Auth {

    public function __construct()
    {
        $this->CI =& get_instance();
        $this->CI->load->library('encrypt');
        $this->CI->load->helper('string');
        $this->CI->load->library('email');
    }


    function login_user($email,$password)
    {
        $reval = false;

        $username = $this->CI->db->escape_str($email);
        $password = $this->CI->db->escape_str($password);
        $this->CI->db->select('id,password,language');
        $query = $this->CI->db->get_where('users',array('email' => $email, 'active' => '1'),1);
        if($query->num_rows() == 1)
        {
            $row = $query->row();
            if(hash("sha256",$this->CI->config->item('hash_salt').$password) == $row->password)
            {
                $reval = true;
                $sess_data = array('user_id'   => $row->id,
                                   'language'  => $row->language,
                                   'logged_in' => $reval,
                                   'email'     => $email);
                $this->CI->session->set_userdata($sess_data);
            }
        }
        return $reval;
    }

    ...

    function user_logged_in()
    {  
        if($this->CI->session->userdata('user_id') && $this->CI->session->userdata('logged_in'))
        {
            return true;
        } else {
            return false;
        }
    }
  
    ...

Main Controller for login :

Code:
...

        function login()
        {
            if ($this->auth->login_user($_POST['mail'],$_POST['password']))
            {
                redirect('portal/', 'refresh');
            } else {
                $this->index('Error ...');
            }
        }
    ...

and with the following I'm always redirected to the main Controller. Why?:

Code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Portal extends CI_Controller {

public function __construct()
{
  parent::__construct();
                if(!$this->auth->user_logged_in()){
                    redirect('main/', 'refresh');
                }
                
        }

        ...

If I do a print_r in this constructor to dump session data all userdata which is set in the Auth library is lost. Any suggestions?

Best regards,
Stefan




Messages In This Thread
Problem with Session after upgrading to 2.0.3 - by El Forum - 11-04-2011, 09:38 AM



Theme © iAndrew 2016 - Forum software by © MyBB