Welcome Guest, Not a member yet? Register   Sign In
session data lost after redirect in CI 3
#4

(02-16-2016, 01:55 AM)Avenirer Wrote: Not really related to your problem, but if you're using CI3, why don't you simply store info the PHP mode: $_SESSION['whatever'] = 'whatever you want stored';

The set_userdata was inserted in CI3 only to avoid breaking code of CI2.x.

Regarding what kaai3 said, you don't need to load session "on every page", as you already "autoloaded" it.

Could you show us how and where you store the session data with some code?

//User Controller - user.php

/**
* User::login()
*
* Login the user by username and password
*
* @param string username
* @param string password
*
* @return boolean
*/
function login()
{
if(@$this->session->userdata('logged_in') == FALSE)
{
if($this->input->post('submit'))
{
$config_rules = array(
array(
'field' => 'username',
'label' => $this->lang->line('con_username'),
'rules' => 'required' ),
array(
'field' => 'password',
'label' => $this->lang->line('con_password'),
'rules' => 'required'),
);

$this->CI->form_validation->set_rules($config_rules);
$this->CI->form_validation->set_message('required', $this->CI->lang->line('con_the').' '.'{field}'.' '.$this->CI->lang->line('not_field_required'));
$this->CI->form_validation->set_error_delimiters('<span class="terr">', '</span>');
if($this->CI->form_validation->run())
{
$set_session_data = array();
$set_session_data['lang'] = $user_data->language_user;
$set_session_data['language_user'] = $user_data->language_user;
$set_session_data['customer_id'] = $user_data->customer_id;
$set_session_data['username'] = $user_data->username;
$set_session_data['email'] = $user_data->email;
$set_session_data['user_type'] = $user_data->user_type;
$set_session_data['user_level'] = @$user_data->user_type == "Admin" ? "1" : ($user_data->user_type == "User" ? "3" : "");
$set_session_data['logged_in'] = TRUE;
$set_session_data['start_time'] = time();

$this->session->set_userdata($set_session_data);

redirect('home');
}
}
}
$this->user_inner_template_view('user/login');
}
// --------------------------------------------------------------------

//Home Controller -- home.php

class Home extends MY_Controller
{
/**
* __construct()
*
* Constructor
*/
function __construct()
{
parent::__construct();
$this->CI =& get_instance();
$this->load->library('session');
echo "<pre>";
print_r($this->session->all_userdata());
echo "</pre>";
exit;


}
}

Output:
=======

Array
(
[__ci_last_regenerate] => 1455615513
[lang_constant] =>
)

MY Session Config
=================

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
// --------------------------------------------------------------------
Reply


Messages In This Thread
RE: session data lost after redirect in CI 3 - by grsabarish - 02-16-2016, 02:54 AM



Theme © iAndrew 2016 - Forum software by © MyBB