我在一台服务器上有两个域abc.com
和xyz.com
,两者都有确切的代码。问题出在xyz.com中,在Chrome浏览器页面刷新时,codeigniter会话变量被重置。但是在abc.com中没有这样的问题。在两个域中都可以在Mozilla中正常工作。问题的根源是什么?它是否与域名相关,htaccess?请提供建议。
答案 0 :(得分:0)
之前我遇到过这个(或非常类似的)问题,我通过启用会话来使用数据库解决了这个问题。
,即在config.php中,使sess_use_database为true,即
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = FALSE; //you can try this with TRUE and see if it works
$config['sess_time_to_update'] = 300;
确保会话表也在数据库中设置。如果没有,这是sql,
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`session_id` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '0',
`ip_address` varchar(16) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '0',
`user_agent` varchar(150) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`last_activity` int(10) unsigned NOT NULL DEFAULT '0',
`user_data` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
`session_data` text NOT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;