如何使Codeigniter会话与edge一起工作?

时间:2017-01-30 04:08:47

标签: php codeigniter cookies session-cookies microsoft-edge

我在边缘检查了会话cookie,但它不可用。在chrome中,会话cookie工作正常。我在设置会话

时尝试了php超全局$_SESSION[]和魔术吸气器$this->session->set_userdata($newdata);

以下是会话配置值:

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'cekosessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'cekosessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

以下是cookie配置值:

$config['cookie_prefix'] = 'ncitce';
$config['cookie_domain'] = 'localhost';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = TRUE;

2 个答案:

答案 0 :(得分:0)

实际上,我所有的CodeIgniter 3项目在Edge中运行良好。请在config.php文件中尝试此配置

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

$config['cookie_prefix']    = '';
$config['cookie_domain']    = '';
$config['cookie_path']      = '/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

请记住在数据库中创建ci_session表。

    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`)
);

如果上述方法失败,请在下方发表评论。

答案 1 :(得分:0)

如果使用的是较低版本的Codeigniter,则可以用此类替换CI的Session类,该类将会话数据存储在服务器上:

https://github.com/bcit-ci/CodeIgniter/wiki/Dariusz-Debowczyk%27s-Session-Class

另请参见以下链接进行讨论: https://expressionengine.com/forums/archive/topic/135722/codeigniter-session-problems-thread