Why call session not working? (codeigniter 3)

moses toh picture moses toh · May 26, 2016 · Viewed 29k times · Source

my config is like this :

$config['sess_driver'] = 'database';  // select database driver
$config['sess_save_path'] = 'ci_sessions';  // name of the mysql table
$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update']  = 300;

My autoload is like this :

$autoload['libraries'] = array('database', 'session', 'form_validation', 'functions');

In controller login.php :

$this->session->set_userdata('club', 'chelsea');

In controller dashboard.php :

echo $this->session->userdata('club');

It did not succeed in calling the session club if different controller

But, when I call session club in the same controller(controller login.php), it's working

I try $this->library->load('session'); in the constructor of Dashboard.php. But it's not success

Any solution to solve my problem?

Thank you

Answer

Fadian Adhitya Nugraha picture Fadian Adhitya Nugraha · Mar 28, 2020

In CodeIgniter 3.x if you just upgraded to PHP version 7.x, go to system/libraries/Session/session.php at line 281 and replace :

ini_set('session.name', $params['cookie_name']); 

by :

ini_set('session.id', $params['cookie_name']);