0

ブラウザは一度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 /エクスプローラー/サファリでは完全に機能する理由はありますか?

4

4 に答える 4

1

ob_start()セッション ライブラリの上に追加します。

ob_start();
$this->load->library('Session');

ob_clean()そして、セッション破壊部分を追加します

$this->load->driver('cache');
$this->session->sess_destroy();
$this->cache->clean();
ob_clean();
于 2016-01-01T08:52:13.213 に答える
1

この行にドットを追加してみてください:

$config['cookie_domain']    = ".[mydomain.com]";

私の構成は同じで、Google Chrome で動作しますが、これらは異なります。

$config['sess_expiration']      = 86400;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;

うまくいくことを願っています:-)

于 2012-04-13T09:58:56.070 に答える
0

構成に移動し、ローカルシステムで使用している場合はこれを置き換えるだけです:

$config['cookie_prefix']    = 'your_prefix';
$config['cookie_domain']    = 'localhost';
$config['cookie_path']      = '/folder_name/';
$config['cookie_secure']    = FALSE;
$config['cookie_httponly']  = FALSE;

または、サーバーで使用している場合は、次のように置き換えます。

$config['cookie_domain']    = 'localhost';
to
$config['cookie_domain']    = '.localhost';

うまくいけば、それはあなたを助けます。

于 2016-04-11T05:47:10.450 に答える