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

データベースコンテナの使用法 – 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();
?>
HTTP_Session2 について (Previous) この例では、複数のブラウザ間で "セッションクッキー" を使用してセッションを永続化させる方法を示します (Next)
Last updated: Thu, 18 Sep 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: 44gatti@gmail.com
setExpire(integer $time - Time in seconds)
in the example time() function instead of seconds