データベースコンテナの使用法

データベースコンテナの使用法 – HTTP_Session2 でセッションデータをデータベースに保存する方法

概要

HTTP_Session を使用すると、 セッションのデータをデータベースに保存することができます。 これは、DBMDB2 パッケージを使用して行います。

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

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

require_once 'HTTP/Session2.php';

HTTP_Session2::useTransSID(false);
HTTP_Session2::useCookies(false);

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

/*
// 既存の MDB2 接続を使用する場合
HTTP_Session2::setContainer('MDB2',
    array('dsn'   => &$db, 'table' => 'sessiondata'));
*/

HTTP_Session2::start('s');
HTTP_Session2::setExpire(time() + 60); // 有効期限を 60 秒とします
HTTP_Session2::setIdle(time() + 5);    // アイドル時間を 5 秒とします

if (HTTP_Session2::isExpired()) {
    
HTTP_Session2::destroy();
}

if (
HTTP_Session2::isIdle()) {
    
HTTP_Session2::destroy();
}

HTTP_Session2::updateIdle();
?>