0:00
 
Window Title
 
 
 
 
 
 
 
 
壁紙の変更

コンピュータ

ネットワーク

ドキュメント

ごみ箱
マイコンピュータ
マイネットワーク
マイドキュメント
ごみ箱

オンラインゲーム

DHTML素材

perl module忘備録

RFC翻訳

文字コード

 

コンピュータ

ネットワーク


コントロールパネル

perl module 忘備録

CGI::Session

セッション管理をサポートする

使い方:
use CGI;
use CGI::Session;
// CGIオブジェクトを生成する。
my $cgi = new CGI;
// CGI::Sessionオブジェクトを生成する。
// セッションパラメタ保存先:/tmp  セッションID形式:MD5
my $session = new CGI::Session($cgi,{Directory=>'/tmp'});
// セッションパラメタ$nameを取得する。
my $value = $session->param($name);
// ハッシュリファレンス経由でセッション情報を取得する。
my $ref = $session->dataref();
my $value = $ref->{$name};
// セッションパラメタ$nameを$valueに設定する。
$session->param($name,$value);
// セッションパラメタをディスクに保存する。
$session->flush();
// セッションパラメタ$nameをクリアする。
$session->clear($name);
// セッションの有効期限を設定する。+30m, +2h, +1d, +1M, +1y などで表現する。
$session->expire('+30m');
// cookieオブジェクトを生成する。パラメタは、CGIモジュールのcookieメソッドと同じ。
// -expiresを指定しないと、セッション期限と同じ期限が設定される。
// セッション期限切れと同時にcookieが無効になるとセッション期限切れの判定は出来ない
// (ブラウザからセッションIDが送られてこなくなるので)セッション期限切れを判定したい
// ときは、cookieの期限はセッションの期限より長く設定する。
my $cookie = $seesion->cookie(-domain=>$domain, -path=>$path, -expires=>'+60m');
// cookieを出力する。
print $cgi->header(-cookie=>$cookie, -charset=>'Shift-JIS');

携帯HPの場合の使い方:
// クッキーが使えないのでフォーム内にIDを埋め込む。
// $sid は、フォームから取り出したセッションID。新規の場合は当然undef。
my $session = new CGI::Session("id:md5",$sid,{Directory=>'/tmp'});
// セッションパラメタの設定方法は、通常と同じ
my $value = $session->param($name);
$session->param($name,$value);
$session->expires('+30m');
// セッションパラメタをファイルに出力する。
$session->flush();
// セッションIDを取得してフォームに埋め込む
my $sid = $session->id();
 :

その他使いそうなメソッド:

CGI::Session->load( newメソッドと同じパラメタ);
既存のセッション情報をロードする。newメソッドと異なり、セッションが存在しない場合は、新しいセッションを生成せず、空のオブジェクトを返す。

$session->remote_addr();
最初にセッションを開いたときのREMOTE_ADDRの値を返す。

$session->is_expired();
セッション期限切れの時、trueを返す。
注)期限切れになったセッションは、再度期限を延ばしても再利用できない。

$session->is_empty();
セッション情報が何もない時(セッションIDもない。つまり、セッションがない状態でloadメソッドでインスタンスを生成した時)、trueを返す。セッション期限切れの時も、trueを返すので注意が必要。

$session->is_new();
新規セッションの時、trueを返す。

$session->delete();
セッションを削除する。

$session->clear($name);
セッションパラメタを削除する。

レディ