如何使 Codeigniter 会话与边缘一起工作?
How can I make Codeigniter session work with edge?
我检查了 edge 中的会话 cookie,但它不可用。在 chrome 中,会话 cookie 工作正常。我在设置 session
时同时尝试了 php superglobal $_SESSION[]
和 magic getter $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;
实际上,我所有的 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 table。
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`)
);
如果以上方法失败请在下方留言。
如果您使用的是较低的codeigniter版本,您可以将CI的会话class替换为这个class,它在服务器上存储会话数据:
https://github.com/bcit-ci/CodeIgniter/wiki/Dariusz-Debowczyk%27s-Session-Class
另请参阅此 link 进行讨论:
https://expressionengine.com/forums/archive/topic/135722/codeigniter-session-problems-thread
我检查了 edge 中的会话 cookie,但它不可用。在 chrome 中,会话 cookie 工作正常。我在设置 session
时同时尝试了 php superglobal$_SESSION[]
和 magic getter $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;
实际上,我所有的 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 table。
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`)
);
如果以上方法失败请在下方留言。
如果您使用的是较低的codeigniter版本,您可以将CI的会话class替换为这个class,它在服务器上存储会话数据:
https://github.com/bcit-ci/CodeIgniter/wiki/Dariusz-Debowczyk%27s-Session-Class
另请参阅此 link 进行讨论: https://expressionengine.com/forums/archive/topic/135722/codeigniter-session-problems-thread