- 2009/02/09 13:44
- CakePHP
CakePHPのクッキーを使おうと思ってはまったのでメモです。
まずこれはCakePHPのCookieコンポーネントの使い方ということが前提です。PHP標準でもクッキーの関数はありますが。
まず、クッキーを使うにはコントローラで、CookieComponentを読み出します。
var $components = array('Cookie');
そして、クッキーを保存するときは、以下を使います。
$this->Cookie->write('shopid',$this->hash,false,time()+60*60);
引数としては、順番に、
(クッキーの名前,クッキーの値,暗号化,有効期限)
です。第2引数まででOKなのですが、その場合は、第3引数の暗号化はデフォルトでfalseとなり暗号化はしません。また、第4引数はクッキーの有効期限を与えます。引数なしでデフォルトは5日間です。
そのほか、ドメインやパスを指定したいときは、別途指定します。
$this->Cookie->path = '/hogehoge/';
デフォルトではパスは「’/'」となり、そのドメイン全体で使用できます。
パスは、
$this->Cookie->domain = 'www.mutliburst.net';
と指定します。指定しない場合、NULLとなります。
このように、クッキーを保存すると、ブラウザにCAKEPHP[shopid]という名前で保存されます。
上記の名前を変更する場合は、app/config/core.phpの以下の部分を変更します。
Configure::write('Session.cookie', 'CAKEPHP');
次にクッキーの読み出しですが、以下のようにします。
$value = $this->Cookie->read('shopid');
これで、’shopid’という名前のクッキーの値が読み出せます。
と、ここまで書いたのですが、いろいろと問題があるようです。
標準でCakeをインストールしたままだと、クッキーの有効期限がどうやってもセッションと同じで、ブラウザを閉じたら終わりになってしまいます。
そこで、同じくapp/config/core.phpの下記の部分をmediumかlowにすれば有効期限が変更できるようです。
Configure::write('Security.level', 'high');
なるほど。アプリケーションのセキュリティーポリシーに併せて変更してみてください。
ですが。。。結局私の場合、PHP標準のクッキー関数を使ってますが。。。なぜか、うまくいかないんです。。。。(^^;)
他にも以下のサイトが参考になると思います。
- “session_idをローカルのcookieファイルに保存するには?” フォーラム – CakePHP Users in Japan
- 「情報を保存する」オプションを有効にする(CakePHP修行 #34) – IDEA*IDEA ~ 百式管理人のライフハックブログ ~
- コスミー報告書[社外秘] – CakePHPではまったこと18(1.2のCookieコンポーネント)

CakePHP ポケットリファレンス (Pocket Reference)
関連記事
- [CakePHP] 本番運用だけ表示するElement
- [CakePHP] 管理者画面でIP制限をかけてみる
- 「CakePHP修行」を追う #7
- CakePHP 1.2でのSQLインジェクション対策
- 「CakePHP修行」を追う #6
- [CakePHP] CakePHPは複合キーに対応していない?
- CakePHP 1.2 final リリース!
- 「CakePHP修行」を追う #4
Sponsored Link
Google+
zenback
- Newer: CakePHP 1.2でのSQLインジェクション対策
- Older: dropboxのキャッシュファイルを消す方法
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://www.multiburst.net/sometime-php/2009/02/how-to-use-cakephp-cookie-component/trackback/
- Listed below are links to weblogs that reference
- [CakePHP] クッキーの使い方まとめ from Sometime PHP
- pingback - Web System Development ! » [CakePHP] クッキーの使い方 より 2009/05/20
[...] 参考サイトURL カテゴリー: CakePHP タグ: コメント (0) トラックバック (0) コメントをどうぞ トラックバックURL [...]
Additional comments powered by BackType





