データベースコンテナ

データベースコンテナ – HTTP_Session による、セッションデータのデータベースへの保存

概要

HTTP_Session により、 セッションデータをデータベースに保存することができます。 これには DB、MDB そして MDB2 パッケージを使用します。

MDB2 の使用による、セッションデータのデータベースへの保存

<?php
/* データベース内に次のテーブルを作成します
CREATE TABLE sessiondata (
  id     varchar(32)    NOT NULL,
  expiry int(10),
  data   text,
  PRIMARY KEY (id)
);
*/

require_once 'HTTP/Session.php';

HTTP_Session::useTransSID(false);
HTTP_Session::useCookies(false);

// DSN を指定します
HTTP_Session::setContainer('MDB2', array('dsn'   => 'mysql://root:password@localhost/database',
                                         
'table' => 'sessiondata'));

/*
// 既存の MDB2 接続を使用する場合はこのようになります
HTTP_Session::setContainer('MDB2', array('dsn'   => &$db,
                                         'table' => 'sessiondata'));
*/

HTTP_Session::start('s');
HTTP_Session::setExpire(time() + 60);   // 60 秒で期限切れ
HTTP_Session::setIdle(time() + 5);      // 5 秒間の無通信でタイムアウト

if (HTTP_Session::isExpired()) {
    
//HTTP_Session::replicate('sessiondata_backup');    // 現在のセッションのデータを、指定したテーブルに複製します
    
HTTP_Session::destroy();
}

if (
HTTP_Session::isIdle()) {
    
//HTTP_Session::replicate('sessiondata_backup');    // 現在のセッションのデータを、指定したテーブルに複製します
    
HTTP_Session::destroy();
}

HTTP_Session::updateIdle();
?>