[cakePHP]Cookieの有効期限

cakePHPでユーザーの言語設定をCookieで設定しようと思ってね、Cookieコンポーネント使ってみてハマった
有効期限を90日とかにしようと思ってこうやったのね


$this->Cookie->write('user_lang', $lang, false, time() + 90 * 24 * 60 * 60);

そしたらブラウザとじたら何か消えるの、Cookie残らないわけですね。
何でかと調べたら、第4引数はタイムスタンプじゃなくて有効時間を設定するのが正しいっぽく


$this->Cookie->write('user_lang', $lang, false, 90 * 24 * 60 * 60);

が正しいらしい
PHPのsetcookieとは若干異なるのですね。。。
ちなみにtime() + 90 * 24 * 60 * 60ってやったら本来有効期限がすごくすごく未来の時間になるわけですが、有効期限が0になっちゃうのは2038年問題で32bitのintがオーバーフローするからだと思われます。

高速開発で差をつけろ!CakePHPの基礎とECサイト制作入門
小倉 実
オモドック
売り上げランキング: 163769
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)
Filed under: cakePHP — maesan 3:44 PM