Cookieコンポーネントめ。すごい便利なんですけどね。Sessionコンポーネントと似た感じで使えるし。
if (!$this->Cookie->read('TEST')) {
$this->Cookie->write('TEST', 'TEST');
}
checkはないみたいなんですけどね。
で、writeの4番目の引数がexpireなんです。3番目は暗号化するかしないか。(デフォルトはtrue:暗号化する)
なもんで
define('COOKIE_EXPIRE', 60*60*24*5); // 5日有効
$this->Cookie->write('TEST', 'TEST', true, time() + COOKIE_EXPIRE);
みたいにしてたんですわ。
でもぜんぜんクッキーが保存されない。しばらく悩んだ挙句、FirefoxでCookie見ればいいことに気づいた私。見てみたらクッキーあるけど有効期間がセッション中だけになっとる。
なんでこんなことになるんだーと思ってソース見たら、expireの引数に中でtime()足しとった!
うへぇ、と言うことで
$this->Cookie->write('TEST', 'TEST', true, COOKIE_EXPIRE);
で思惑通りになりましたとさ。
あと、標準のままだとクッキーの名前が”CakeCookie[TEST]”になっちゃうので、cake » libs » controller » componentsにあるcookie.phpの
var $name = 'CakeCookie';
を適当に変更しました。
ちなみにSessionで使われるクッキーもほっとくと”CakePHP”になっちゃうけど、これはapp » configのcore.phpに設定項目があります。
あと、CakePHPで作ったといえばこれ↓。
みんなが小説家になるようです。(α版)
なんという宣伝か。
以上
18だった。
Add Your Comment
ピンバック: [CakePHP] クッキーの使い方まとめ - ElectronicBrain is eating BreakFast
An interesting discussion is worth comment. I do believe that you should write more about this subject, it
might not be a taboo matter but generally folks don’t speak
about such issues. To the next! All the best!!