[英]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.