我正在使用新版本(3.0.0)。 CodeIgniter 的版本,我遇到了一个新问题,我的会话不起作用。我的意思是,控制器中的代码是正确的,因为没有错误,但是当我尝试在视图中打印 PHP 变量时,没有任何错误。
我检查了 MySQL 服务器中的表,什么也没有,我现在不知道问题是什么。我把我的config.php代码放在里面。 (这个新版本很多东西我都看不懂)
$config['sess_table_name'] = 'ci_sessions';
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
我必须添加第一行以“使”会话有效,我不知道该配置是否正确以在数据库中创建会话。
如果有人有同样的问题,请帮助我:(。我的会话类尚未编辑。
首先CI3会话表和CI2会话表(将会话数据保存到数据库)结构不同
新会话表结构
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
PRIMARY KEY (id),
KEY `ci_sessions_timestamp` (`timestamp`)
);
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_sessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';//its your table name name
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
请参阅他们的文档
了解更多详细信息会话库几乎没有可用的新功能。
记住不要忘记通过autoload.php加载它或在使用它之前加载
$this->load->library('session');
。
如果您添加了“第一行”(即
sess_table_name
)以使其正常工作,那是因为您的 sess_driver
值设置为 database。查看支持的驱动程序列表,您会发现对于基于文件的会话,它将默认为该列表。换句话说,如果删除这些行,它应该可以工作:
$config['sess_table_name'] = 'ci_sessions';
$config['sess_driver'] = 'database';
SQL命令: 如果不存在则创建表
ci_sessions
(
id
varchar(128) NOT NULL,
ip_address
varchar(45) NOT NULL,
timestamp
int(10) 无符号默认 0 非空,
data
斑点不为空,
关键 ci_sessions_timestamp
(timestamp
)
);
应用程序/config/config.php
$config['sess_driver'] = '数据库'; $config['sess_save_path'] = 'ci_sessions';