多个控制器获取session的问题
本帖最后由 nuonuonuo 于 2019-3-14 18:42 编辑各位好,我将登录信息通过CI的session库在一个控制器里存储了起来,当我想在其他控制器获取session数据来校验是否登录时,却获取不到数据。请问这是什么原因?
CI使用的版本是3.1.10
下面是登录逻辑控制器的代码
class Account extends CI_Controller
{
public function __construct()
{
parent::__construct();
// 加载模块
$this->load->model('Account_model');
$this->load->library('session');
}
/**
* 登录逻辑
*/
public function login()
{
$username = $this->input->post('username');
$password = $this->input->post('password');
// 执行模块里登录函数,返回用户信息的关联数组或false
$query = $this->Account_model->login($username, $password);
if ($query) {
// 使用session类设置指定键值对
$this->session->set_userdata($query);
$res = [
'code' => 200,
'msg' => [
'text' => "登录成功",
'username' => $username,
'level' => $query['level']
]
];
} else {
$res = [
'code' => 204,
'msg' => [
'text' => "登录失败"
]
];
}
$this->_ajax_output($res);
}
}
下面是需要用的登录信息的控制器的代码
class Number_record extends CI_Controller
{
public function __construct()
{
parent::__construct();
// 加载模块
$this->load->model('Number_record_model', 'NRM');
$this->load->library('session');
}
/**
* 添加号码
*/
public function add_num()
{
$num = $this->input->post('num');
if (!isset($_SESSION['username'])) {
$res = [
'code' => 101,
// 我在这里试图获取session数据,但是只返回了"__ci_last_regenerate: 1552555932",我在上面添加的数据并没有存在里面。
// 即使是使用$_SESSION也获取不了
'msg' => $this->session->userdata()
];
} else {
// ....
}
$this->_ajax_output($res);
}
}
很早前听说官方的 session 功能不好用,所以有别人扩展了。我自己也没用官方的 $query = $this->Account_model->login($username, $password);
你这个login返回的是什么? 本帖最后由 nuonuonuo 于 2019-3-19 16:44 编辑
superxgz 发表于 2019-3-18 19:29
$query = $this->Account_model->login($username, $password);
你这个login返回的是什么?
返回用户信息的关联数组或者false,就像这样:
{
'user' => "tony",
'level' => 1
}
页:
[1]