2007年1月13日土曜日

[Perl] Cookie でセッション管理

CGI::Session 使うとこんな感じ。

セッション生成&Cookieセット
# セッション生成
CGI::Session->name("sid");
$session = new CGI::Session("driver:File", undef, {Directory=>"/tmp"});
$session->param( "uid", $uid );
$session->param( "name", $name );
$session->expire('+1h');

# Cookieセット
# → name=sid value=b6dca34462e301df2dfdc4d228516c4e の様なデータがCookieにセットされる
print $session->header();

Cookie&セッションデータ参照
# cookieからセッションIDを取得
my $cgi = new CGI;
my $sid = $cgi->cookie('sid');

# セッションデータからデータ取得
$session = new CGI::Session( "driver:File", $sid, {Directory=>"/tmp"} );
my $uid = $session->param('uid');
my $name = $session->param('name');

参考)
CGI::Session
CGI::Session - CGIアプリケーションにおける持続的なデータのセッション

0 件のコメント: