[Tokyo.pm] Re: mod_perl と cookie
Keiichi Okabe
k.okabe @ ntt-bb.com
2002年 2月 26日 (火) 05:35:24 CST
岡部です.
----- Original Message -----
From: "Tatsuhiko Miyagawa" <miyagawa @ edge.co.jp>
To: <tokyo-pm-list @ happyfunball.pm.org>
Sent: Tuesday, February 26, 2002 5:30 PM
Subject: Re: [Tokyo.pm] Re: [Tokyo.pm] Re: mod_perl と cookie
> my $session_id = $cookies{'session_id'} ? $cookies{'session_id'}->value : 0;
> みたいにする必要があると思います。
半分はこれであたりでした.Win32では,SerializeにStorableを使っている
とうまく動かないようで,これをApache::Session::Flexを使ってBase64に
変更したらうまく動きました.以下のようになります.
package Apache::Hello3;
use strict;
use Apache::Constants;
use Apache::Cookie;
use Apache::Session::Flex;
our $base = 'C:/Program Files/Apache Group/Apache/lib/perl/Apache';
sub handler{
my $r = shift;
my $host = $r->get_remote_host;
my %cookies = Apache::Cookie->fetch;
my $session_id = $cookies{'session_id'} ?
$cookies{'session_id'}->value : 0;
my %session = ();
tie %session,'Apache::Session::Flex',$session_id,{
Store => 'DB_File',
Lock => 'Null',
Generate => 'MD5',
Serialize => 'Base64',
FileName => "$base/sessions.db",
};
++$session{access};
my $state_cookie = Apache::Cookie->new($r,
-name => 'session_id',
-value => $session{_session_id}
);
$r->content_type('text/html');
$state_cookie->bake;
$r->send_http_header;
$r->print(<<END);
<HTML>
<HEAD>
<TITLE>Hello There</TITLE>
</HEAD>
<BODY>
<H1>Hello $host</H1>
Your access: $session{access}
</BODY>
</HTML>
END
return OK;
}
1;
---
k.okabe @ ntt-bb.com 岡部 恵一
成功出於衆者、先知也、先知者、必取於人、知敵之情者也
孫子 用間篇 第十三
Tokyo-pm メーリングリストの案内