繁体   English   中英

CodeIgniter 3.0-文件会话设置无效

[英]CodeIgniter 3.0 - Files sessions settings have no effects

我正在尝试将应用程序从CI 2.x升级到3.0。 我已按照迁移说明( http://www.codeigniter.com/userguide3/installation/upgrade_300.html )进行操作,会话配置如下所示:

$config['sess_driver']             = 'files';
$config['sess_cookie_name']        = 'ci_session';
$config['sess_expiration']         = 1440;
$config['sess_save_path']          = __DIR__ .'/../session/';
$config['sess_match_ip']           = TRUE;
$config['sess_time_to_update']     = 300;
$config['sess_regenerate_destroy'] = FALSE;

但是, $config['sess_driver']似乎在某处被覆盖到'database' ,因为出现以下错误:

You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 
'SET `user_data` = 'a:2:{s:9:\"user_data\";s:0:\"\"' at line 1

显然,我没有user_data列,因为我希望自己的会话能够处理文件。

我是否缺少明显的东西?

谢谢,

您已将新的system /目录复制粘贴到旧的目录上,而不是先删除旧的目录。

注意:这可能不是您的错,因为用户指南目前尚不清楚(2015-07-31)。 在3.0.1版本中将对此进行更新并附带注释。

在CI2.x中,会话库位于system / libraries / Session.php中 ,而在CI3中,它具有自己的目录,而基类位于system / libraries / Session / Session.php中
通过复制粘贴旧版本的框架,您仍然拥有会话库的CI2版本,并且由于加载程序的工作方式(首先查找system / libraries / Library_name.php ),因此您仍在使用它。

您还保留了旧的$config['sess_use_database']设置并启用了它,这就是导致数据库查询执行的原因。 否则,将使用cookie来存储数据,并且您可能不会注意到任何东西。

要么这样做,要么在application / libraries / Session.php中使用您自己的库扩展/覆盖了库存库,但这似乎不太可能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM