0

我有以下代码:

$session_data = array(
     'user_id' => $user_id,
     'username' => $username,
     'group_id' => $group_id,
     'logged_in' => TRUE
);
$this->session->set_userdata($session_data);

user_id 和 logged_in 完美地存储在 db 中,但 username 和 group_id 以“N”存储。系统的结构是“模块化的”,在我的旧应用程序中,仅遵循 MVC 就可以正常工作。

以前有没有人遇到过这个问题,如果你有,你能提供一点帮助吗?

编辑:所有 N 值都是问题,而应该是每个数据的实际值

下面是数据库中的 user_data 字段

a:5:{s:9:"user_data";

s:0:"";s:7:"user_id";N;

s:8:"username";N;

s:5:"group";N;

s:9:"logged_in";b:1;}
4

2 回答 2

0

您需要在会话中启用保存数据。

  1. 在 application/config/config.php 中设置您的应用程序以使用数据库来保存会话。

$config['sess_use_database'] = 真;

  1. 在数据库中创建表,并为表提供与 config.php 中设置的名称相同的名称

    如果不存在则创建表 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文本非空,主键(session_id),键last_activity_idxlast_activity));

然后,每当您使用会话时,codeigniter 都会在数据库上进行中继,您可以根据需要设置“user_data”字段。也许,您最好序列化该数据并保存在“user_data”字段中。

在 php session 或 cookie 中保存数据有一定的限制。

于 2013-01-24T13:48:59.047 回答
0

我修好了它。这与 CI 会话库无关,我的数据库查询中有一个错误:(

对我造成的任何不便深表歉意

于 2013-01-24T14:15:13.813 回答