我刚刚使用了代码
$data = array(
'USERNAME' => $this->input->post('USERNAME'),
'is_logged_in' => 1
);
$this->session->set_userdata($data);
我的控制器上的和代码
<?php
echo "<pre>";
print_r($this->session->all_userdata());
echo "</pre>";
?>
在登录后我将被重定向的页面上。我正在观看这个视频教程,他得到的输出就像是
[session_id] = >
[ip_address] = >
[user_agent] = >
[last_activity] = >
[user_data] = >
[username_variable] = >
[is_logged_in] = >
我只得到输出
[__ci_last_regenerate] =>
[USERNAME] =>
[is_logged_in] =>
为什么?它与代码点火器版本有关吗?或者我有错误或配置错误?如果输出不相同,我担心我将来会有错误。
答案 0 :(得分:1)
NO !!。它没有。
您设置的内容仅返回。在您的会话代码中,您只设置了USERNAME
和is_logged_in
。所以这两个只在你打印会话时输出。
如果显示的元素超过此数量,则会话存储错误
还有一件事
当您使用Codeigniter session to store in table时,您将全部取消。
将会话数据保存到数据库
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);