如何在 codeigniter 3 数据库中设置会话?
How I can set a session in codeigniter 3 database?
我正在使用新版本 (3.0.0)。 CodeIgniter 和我有一个新问题,我的会话不工作。我的意思是,控制器中的代码是正确的,因为没有错误,但是当我尝试在视图中打印 PHP 变量时,什么也没有。
我在MySQL服务器上检查了我的table,什么也没有,我现在不知道是什么问题。我把我的代码 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;
我必须将第一行添加到 "make" 会话有效,我不知道该配置是否正确以在数据库中创建会话。
如果有人遇到同样的问题,请帮助我 :( 。我的会话 class 尚未编辑。
如果您添加了 "first line"(即 sess_table_name
)使其生效,那是因为您的 sess_driver
值设置为 database.查看 list of supported drivers,您会看到对于基于文件的会话,它将默认为该值。换句话说,如果您删除这些行,它应该可以工作:
$config['sess_table_name'] = 'ci_sessions';
$config['sess_driver'] = 'database';
删除添加的行并设置:
$config['sess_save_path'] = 'ci_sessions';
其余代码应该没问题。
Link to docs.
首先CI3 session table and CI2 session table( Saving Session Data to a Database)结构不同
新会话tablestructure
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`)
);
其次他们支持old configuration variables with new configuration但最好使用新配置
$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;
在他们的 docs
中查看更多详细信息
会话库可用的新特性(函数)很少。
记住不要忘记在使用前通过autoload.php加载或加载$this->load->library('session');
。
我正在使用新版本 (3.0.0)。 CodeIgniter 和我有一个新问题,我的会话不工作。我的意思是,控制器中的代码是正确的,因为没有错误,但是当我尝试在视图中打印 PHP 变量时,什么也没有。
我在MySQL服务器上检查了我的table,什么也没有,我现在不知道是什么问题。我把我的代码 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;
我必须将第一行添加到 "make" 会话有效,我不知道该配置是否正确以在数据库中创建会话。
如果有人遇到同样的问题,请帮助我 :( 。我的会话 class 尚未编辑。
如果您添加了 "first line"(即 sess_table_name
)使其生效,那是因为您的 sess_driver
值设置为 database.查看 list of supported drivers,您会看到对于基于文件的会话,它将默认为该值。换句话说,如果您删除这些行,它应该可以工作:
$config['sess_table_name'] = 'ci_sessions';
$config['sess_driver'] = 'database';
删除添加的行并设置:
$config['sess_save_path'] = 'ci_sessions';
其余代码应该没问题。 Link to docs.
首先CI3 session table and CI2 session table( Saving Session Data to a Database)结构不同
新会话tablestructure
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`)
);
其次他们支持old configuration variables with new configuration但最好使用新配置
$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;
在他们的 docs
中查看更多详细信息会话库可用的新特性(函数)很少。
记住不要忘记在使用前通过autoload.php加载或加载$this->load->library('session');
。