我为我的网站创建了一个身份验证(目前我使用codeigniter作为我的php框架)。
为什么我在$config['sess_use_database'] = TRUE;
我的会话数据消失,并且不会显示在页面的一部分中。我试图显示登录该网站的人的用户名。
当页面中显示$config['sess_use_database'] = FALSE;
用户名时。
答案 0 :(得分:2)
在CodeIgniter 2中,ci_sessions表需要略有不同。
具体来说,user_agent的大小已从varchar 50变为varchar 120.如果使用CodeIgniter 2并将sess_use_database
设置为TRUE,请确保使用此基本原型:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) 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`)
);
答案 1 :(得分:0)
您需要创建数据库表来存储会话数据:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text DEFAULT '' NOT NULL,
PRIMARY KEY (session_id)
);
然后设置$config['sess_table_name'] = 'ci_sessions';