情報を codeigniters セッションに保存する必要がある状況があります->ブラウザーウィンドウを閉じることができます->ブラウザーウィンドウを開いて、セッションに保存したすべてのアイテムを回復します。codeigniter は実際にはセッションを使用せず、代わりに Cookie を使用することを知っているので、これは非常に簡単なはずです....しかし、そうではありません。
FF / Safari / Chrome ではこれは正常に動作しますが、IE 9 ではウィンドウを閉じてから再度開くと、セッション ID が再生成され、データが引き戻されません。
たとえば、この単純なコード:
$this->CI->session->set_userdata('username','My Username');
echo $this->CI->session->userdata('username');
初めて実行すると、期待どおりに出力されます。次に、1 行目をコメントアウトして画面を更新すると、セッション データが再び正しく表示されます。
ここで、ブラウザー ウィンドウを閉じて、同じページに戻ります。ここでも 1 行目がコメント アウトされています。セッション データが見つからず、セッション ID が変更されました。
codeigiter でデータベースに保存するセッションがあり、セッション構成は次のようになります。
$config['sess_cookie_name'] = 'bcsession';
$config['sess_expiration'] = 0;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = FALSE;
$config['sess_time_to_update'] = 300;