2012年9月5日水曜日

cakephp2.2 Sessionの設定 データベースで管理する

このページの内容

  • (1)app/Config/core.phpにて、Sessionをdatabaseで管理する設定
  • (2)databaseにcake_sessionsテーブルを作る
  • (3)Session read/writeの使い方

(1)app/Config/core.phpにて、Sessionをdatabaseで管理する設定
□app/Config/core.phpのSessionに関する説明を読む
 * The built in defaults are:
 *
 * - 'php' - Uses settings defined in your php.ini.
 * - 'cake' - Saves session files in CakePHP's /tmp directory.
 * - 'database' - Uses CakePHP's database sessions.
 * - 'cache' - Use the Cache class to save sessions.
160行目あたりに上記の記述があります。

↓defaults => 'php'の部分を'database'に変更すれば良いようです
 Configure::write('Session', array(
  'defaults' => 'php',
 ));

'cookie'と'timeout'の設定を追加しておきます。
↓下記は、24*60*60*7=1週間としました。
 Configure::write('Session', array(
  'defaults' => 'database',
  'cookie' => 'SID',
  'timeout' => 24*60*60*7,
 ));

(2)databaseにcake_sessionsテーブルを作る
 □app/Config/Schema/sessions.sql を読む
CREATE TABLE cake_sessions (
  id varchar(255) NOT NULL default '',
  data text,
  expires int(11) default NULL,
  PRIMARY KEY  (id)
);
上記のSQLを実行して、利用中のデータベースに cake_sessionsテーブル作成して完了です。

(3)Session read/writeの使い方

・セッション・オブジェクトへのの書き込み
$this->Session->write('LoginUser.Id', $uid);


・セッション・オブジェクトの読み出し
$this->Session->read('LoginUser.Id');

0 件のコメント:

コメントを投稿