Codeigniter 3会话无法使用PHP 7.1.4

时间:2017-05-01 12:15:24

标签: php session codeigniter-3 codeigniter-hmvc php-7.1

我有一个使用Codeigniter 3 HMVC构建的应用程序。该应用程序在PHP 5.6版本上工作正常,但在将我的PHP版本升级到7.1.4后,我无法登录到我的应用。完成检查后,我发现该会话根本没有设置。

我回到PHP 5.6并且会话再次正常工作,而切换到PHP 7.1.4会使"会话无法正常工作"问题回来。

我尝试改变一些配置值,如cookie前缀和cookie保存名称等,似乎没有什么可以修复它。

任何人都可以帮忙。

2 个答案:

答案 0 :(得分:10)

我发现问题出现在一些早期版本的Codeigniter 3上,这是他们网站上已经报道过的一个错误。基础会话错误已修复:

  • 3.1.2
  • 3.1.3
  • 3.1.4

因此,在最新版本的Codeigniter 3中,这个问题并没有发生。

解决方案:

如果您已经处于错误版本的codeigniter,请考虑使用最新版本替换系统文件夹。在撰写本文时,版本3.1.6。

答案 1 :(得分:0)

在 XAMPP(windows) 上的 codeigniter 3.1.9 和 PHP 7.2 中,我检查了我的 application/config/config.php 并看到 sess_driver 是数据库:

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = '165_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = "ci_sessions";

所以我创建了数据库 ci_sessions:

CREATE TABLE IF NOT EXISTS `ci_sessions` (
        `id` varchar(128) NOT NULL,
        `ip_address` varchar(45) NOT NULL,
        `timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
        `data` blob NOT NULL,
        KEY `ci_sessions_timestamp` (`timestamp`)
);

它奏效了。