CodeIgniter会话在一个控制器中可用,但在其他控制器中不可用...
会话正在设置用户控制器
class User extends CI_Controller {
// SEssion worked here
public function __construct()
{
parent::__construct();
session_start();
}
function setSess (){
// database model call, Value comes from 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 to profile
}
}
无法在
中收到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']
}
}
我在这里缺少什么?有什么建议吗?
答案 0 :(得分:0)
请勿使用session_start(),而是加载CodeIgniter会话库
在用户控制器中:
class User extends CI_Controller {
public function __construct()
{
parent::__construct();
if(!isset($this->session)) {
$this->load->library('session'); # do 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
);
}
...
}
在Profile Controller中:
class Profile extends CI_Controller {
public function __construct()
{
parent::__construct();
if(!isset($this->session)) {
$this->load->library('session');
}
}
...
}
还要确保您的配置文件设置正确。请按照CodeIgniter Sessions
中的说明进行操作