2011-06-22 26 views
1

ブラウザを再起動すると、codeigniterで設定したCookieが削除されます。ブラウザの再起動時にCookieが削除される

$test_cookie = array(
        'name'=>'test', 
        'value'=> 'test', 
        'expire'=> time() + 60*60*24*14 
       ); 

$this->input->set_cookie($test_cookie); 

print_r($test_cookie)リターン:

Array ([name] => test [value] => test [expire] => 1309943188) 

今私は、クッキーが設定されていることを確認するためにクッキーを印刷することができます。

$test_cookie= $this->input->cookie('test'); 
echo "<b> Cookie value: </b>". $test_cookie; 

私のようなクッキーを設定していクッキーは値を正しく表示します。

しかし、私がブラウザを再起動した場合、私はもうクッキー値を取得しません。私は複数のブラウザを試しました。 var_dumpの場合は、bool(false) ブラウザが再起動したときにCookieが削除されるのはなぜですか?

ありがとうございました。

+0

ブラウザの一部の設定で、シャットダウン時に自動的にクッキーが削除されますか?それはすべてのブラウザで起こりますか? –

+0

@Damien Pirsy私が言及したように、私は複数のブラウザを真似しており、そのすべてが起こっています。 – Roman

答えて

4

CodeIgniterのマニュアルには、expiresという値が現在の時刻に追加されていると記載されています。したがって、事実上のexpiresの価値はtime() + time() + 60*60*24*14です。これは、32ビットの整数制限を超えて、負の値になります。その結果、一時的なクッキーがブラウザを閉じると削除されます。

$test_cookie = array(
    'name'=>'test', 
    'value'=> 'test', 
    'expire'=> 60*60*24*14 
); 

が有効です。おもう。

+0

ありがとう、ちょうど問題があった。 – Roman

関連する問題