2012-04-12 5 views
0

は、ブラウザが正常時に、私は本当に私はちょうど、ある時点で、私は私のウェブサイトではないことに気づいたことを伝えることができます伝えることはできません(どのように一度クッキーを持っていますもうクロムで働く)。クロムは、デベロップメントツールに「このサイトにはCookieがありません」と表示され続けます。CodeIgniterの:?。?セッションはGoogle Chromeで動作しない

それはなど、エクスプローラ/ Firefoxの/サファリでは正常に動作します...

CIセッションライブラリの使用クッキーとすべての私のページは、セッションライブラリを使用しているので、私は本当にこの問題を解決する必要があります。ここで

は、ここに私の設定(データベーステーブルは、存在働き、通常のクッキーが暗号化されている)

$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; 

であるユーザーがログインすると、クッキーの設定が

$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/explorer/safariで完璧に動作するかどうかについてのアイデアはありますか?

+0

sess_use_databaseをtrueに設定しているため、セッションはクッキーではなくデータベースを介して維持されます。 –

答えて

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; 

私はそれが動作願っています: - )

+0

提案のおかげでjonaypelluz。私はtryedし、それは動作しませんでした。私はcookie_domainを空白のままにして、今は動作します。ブラウザがドメイン名を正しく設定しました。それはブラウザで処理する必要があるように見えます...? – Simmoniz

0

通常ます(私が持っているだけでなく、過去に)解決(d)のそれの有効期限セッションを拡張することで、私はあなたがすでに1週間に設定されている参照してください。それを短くしてみてください。たとえば :私はちょうど他の誰かがこの方法で問題を解決したCIのフォーラムで読んだよう

$config['sess_expiration'] = 8600; 

また、あなたは暗号化クッキーをオフにしてみてください:私は助け

$config['sess_encrypt_cookie'] = FALSE; 

・ホープ。私はそれはあなたのために行く方法を知ってみましょう:)

0

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

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

それとも、あなたがそれを使用している場合:あなたのセッション破棄一部

$this->load->driver('cache'); 
$this->session->sess_destroy(); 
$this->cache->clean(); 
ob_clean(); 
0

コンフィグに移動し、ローカルシステム上で使用している場合にだけ、これを置き換えるで

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

そして追加ob_clean()サーバの場合は、次のように置き換えてください:

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

うまくいけばそれはあなたを助けるでしょう。

関連する問題