ブラウザは一度Cookieを取得しました(どうやって?いつ?本当にわかりません。ある時点で、自分のWebサイトがChromeで機能しなくなったことに気づきました)。現在、chromeは開発ツールに「このサイトにはCookieがありません」と表示し続けます。
エクスプローラー/Firefox/サファリなどで問題なく動作します...
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');
これは簡単で、これが行われるべき方法だと思いますか?クロームでは機能しないが、Firefox /エクスプローラー/サファリでは完全に機能する理由はありますか?