2010年3月17日水曜日

阿嘉200909陸
















-- nitc

石垣

台風のなか、すきまを見つけてマンタスクランブルにいってくれたショップに感謝!


















-- nitc

久米島

久米島は、ネプチューンダイバーズさんにおせわになりました。
マクロ派よりのショップで、おかげで天気が悪くて楽しめました。








































-- nitc

大サービス

してもらいました







-- nitc


2010年2月23日火曜日

リベンジ

これでいけるかな?

★送り側★
use CGI;
use CGI::Session qw/-ip-match/;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = new CGI;
# CGI::Sessionnオブジェクトの生成
my $session = new CGI::Session(undef, $cgi, {Directory=>'./session'});
$session->param("user_id", "nitc");
$session->expire('+1m');

print $session->header(-charset=>'euc-jp');
print $session->id();


★受け側★
use CGI;
use CGI::Session;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = new CGI;
# CGI::Sessionnオブジェクトの生成
my $session = CGI::Session->load(undef, $cgi, {Directory=>'./session'});

my $val=$session->param("user_id");

print $session->header(-charset=>'euc-jp');
print "$val,";
$session_id = $session->id();
print "$session_id, ";

if ($session->is_empty ) {
print "empty\n";
}
if ($session->is_expired ) {
print "expired\n";
}
if (!defined($val)) {
print "no session\n";
}

2010年2月21日日曜日

2010年2月16日火曜日

CGI-Session-4.42.tar.gzのためにいれたもの

CGI.pm-3.49.tar.gz
FCGI-0.68.tar.gz
Test-Simple-0.94.tar.gz

★おくりて
# 有効なセッションIDを取得
$CGISESSID = $session->id();

# セッションにデータを格納
$session->param('user_id', $user_id);
# or
#$session->param(-name=>'l_name', -value=>'Ruzmetov');

# データの回収
#my $f_name = $session->param('f_name');
# または
#my $l_name = $session->param(-name=>'l_name');

# 特定セッションパラメータのクリア
#$session->clear(["_IS_LOGGED_IN"]);

# '_IS_LOGGED_IN'フラグは10分間アイドルした後期限切れになります
#$session->expire(_IS_LOGGED_IN => '+10m');

# セッションそのものが1minutesアイドルした後期限切れになります
$session->expire('+1m');

# セッションを削除したほうが良いでしょう
#$session->delete();

$querry->header(
-cookie=>$querry->cookie(-name=>'CGISESSID',
-value=>$CGISESSID)
);

#print $querry->redirect("/cgi-bin/receiveSession.pl?CGISESSID=$CGISESSID");


★うけて
#!/usr/bin/perl
use strict;
use CGI;
use CGI::Session qw/-ip_match/;

my $cgi=CGI->new;
my $sid=$cgi->cookie('CGISESSID')||$cgi->param('CGISESSID')||undef;
#1.cookieからCGISESSIDを探す
#2.cookieから取れなかったらurlパラメータを探す.
#3.どちらも取得できなかったらundef.
my $session=CGI::Session->new(undef,$sid,{Directory=>'./tmp'});
#4.取得したセッションidが有効ならそのまま.無効なら別のidを発番.

print $cgi->header(-charset=>'euc-jp'),
$cgi->start_html(-lang=>'ja',
-encoding=>'euc-jp',
-title=>'CGI.pm使用/遷移先');
if(defined $sid && $sid eq $session->id){
#cookieかurlパラメータから値を取得でき,かつ有効なid
print $cgi->p('セッションは有効
',
'session id: '.$session->id.'
',
'user_id: '.$session->param('user_id'));
}
elsif(defined $sid && $sid ne $session->id){
#cookie,またはurlパラメータから値を取得できた.しかしidとしては無効
print $cgi->p('セッションは無効
',
'$sid: '.$sid.'
',
'$session->id: '.$session->id);
#不要なidはさっさと消去
#先にcloseをしないと,deleteで
#'(in cleanup) could not flush: Couldn't unlink .session/cgisess_CGISESSID'
#が発生する.エラーが出てもファイルは消える.
#closeは遅いらしい
$session->close;
$session->delete;
}
else{
#cookie,またはurlパラメータから値を取得できない.
print $cgi->p('セッションなし
',
'$sid: undefined'),
}
print $cgi->end_html;
#end