php - CodeIgniter session available in one controller but not in other -
codeigniter session available in 1 controller not in other...
session setting user controller
class user extends ci_controller { // session worked here public function __construct() { parent::__construct(); session_start(); } function setsess (){ // database model call, value comes database $_session['user'] = array ( 'isloggedin' => true, 'id' => $userdata[0]['id'], 'username' => 'abc', 'email_address' => $userdata[0]['email_address'], 'country' => $userdata[0]['country'], 'lastloggedin' => $lastlogintime ); // redirect profile } }
unable receive in
class profile extends ci_controller { public function __construct() { parent::__construct(); session_start(); } public function index() {} public function display() { echo "<pre>"; print_r($_session); $data['title'] = 'profile of '.$_session['user']['username']; // gives error here while echoing $_session['user']['username'] } }
what missing here? suggestion?
do not use session_start(), instead, load codeigniter session library
in user controller:
class user extends ci_controller { public function __construct() { parent::__construct(); if(!isset($this->session)) { $this->load->library('session'); # not use 'session_start();' } } function setsess (){ $_session['user'] = array ( 'isloggedin' => true, 'id' => $userdata[0]['id'], 'username' => 'abc', 'email_address' => $userdata[0]['email_address'], 'country' => $userdata[0]['country'], 'lastloggedin' => $lastlogintime ); } ... }
in profile controller:
class profile extends ci_controller { public function __construct() { parent::__construct(); if(!isset($this->session)) { $this->load->library('session'); } } ... }
also make sure config file setup correctly. follow documentation here codeigniter sessions
Comments
Post a Comment