【发布时间】:2016-05-15 03:56:58
【问题描述】:
我在使用带有 HMVC 扩展的 CI 3.0.3 时遇到了问题。 我想在用户成功登录时设置会话变量。所以我有 User.php 类来存储登录视图和输入验证。
if($this->form_validation->run() == true):
// prep auth, session
$login_data = Array(
'table' => 'users',
'cred' => Array(
'username' => $_POST['username'],
'password' => $_POST['password'],
'user_active' => 1
)
);
$try = modules::load('auth/login', $login_data);
当验证运行时,我将数据发送到 Auth 模块,以登录功能。 Login 方法运行 SQL 查询来验证用户输入,如果一切正确,Login 方法将用户详细信息发送到 set_login_session 方法:
验证/登录:
$user_details_from_db = $this->lmodel->try_login($table, $login_data);
if($user_details_from_db) $this->set_login_session($user_details_from_db);
Auth/set_login_session
public function set_login_session($user_data) {
$sess_data = Array(
'id' => $user_data->id}, // user id
'username' => $user_data->username}, // username
'is_logged' => true
);
// set session data
$this->session->set_userdata($sess_data);
}
我认为这应该设置会话变量,但它不起作用。当我转储所有会话数据时,我只看到:
Array
(
[__ci_last_regenerate] => 1454660014
)
顺便说一句,当我将所有 set_login_session 的内容移动到主 User.php 控制器并在那里运行相同的代码时,它可以完美运行。但不是作为 HMVC 模块。
我还通过 CI 的自动加载加载 Session 类。
我做错了什么?
提前致谢。
【问题讨论】:
标签: php codeigniter session hmvc modular