浏览器曾经成功地获得了一个 cookie(如何?什么时候?我真的不知道。我只能说在某个时间,我意识到我的网站不再在 chrome 中工作)。现在 chrome 在开发工具中一直显示:“此站点没有 cookie”。
它在 explorer / firefox / safari 等中运行良好......
由于 CI 会话库使用 cookie 并且我的所有页面都使用会话库,我真的需要解决这个问题。
这是我的配置(数据库表存在,有效,通常 cookie 是加密的)
$config['sess_cookie_name'] = '[mydomain]sessions';
$config['sess_expiration'] = 60*60*24*7; // one week
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = '[mydomain]sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 300;
这是cookie配置
$config['cookie_prefix'] = "";
$config['cookie_domain'] = "[mydomain.com]";
$config['cookie_path'] = "/";
$config['cookie_secure'] = FALSE;
当用户登录时,它会:
$query = $this->db->get_where('user', array('id' => $logged_in_user_id));
$row = $query->row();
$this->session->set_userdata('user_id', $row->user_id);
redirect(base_url(), 'location');
当用户注销时,它会:
$this->session->sess_destroy();
redirect(base_url(), 'location');
这很简单,我想这是应该这样做的方式吗?知道为什么它在 chrome 中不起作用,但在 firefox / explorer / safari 中完美运行?