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 ) 

これで、Cookieを印刷して、Cookieが設定されていることを確認できます。

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

Cookieは値を正しく出力します。

ただし、ブラウザを再起動すると、Cookieの値が取得されなくなります。複数のブラウザを試しました。を使用するvar_dumpと、次のようになりbool(false) ます。ブラウザの再起動時にCookieが削除されるのはなぜですか。

ありがとう。

4

1 に答える 1

4

CodeIgniterのドキュメントには、expires値が現在の時刻に追加されると記載されています。したがって、事実上、expiresあなたの場合の値はですtime() + time() + 60*60*24*14。これは32ビット整数の制限を超えており、負の値になる可能性があります。これにより、ブラウザを閉じると一時的なCookieが削除されます。

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

動作するはずです。おもう。

于 2011-06-22T09:48:22.523 に答える