libapreq-1.0 > Apache::Cookie

名前

Apache::Cookie - HTTP Cookie クラス

概要

    use Apache::Cookie ();
    my $r = Apache->request;
    my $cookie = Apache::Cookie->new($r, ...);

説明

Apache::Cookie モジュールは libapreq 中のCookie関連処理のPerlインターフェースです。 インターフェースは Lincoln Stein の CGI::Cookie モジュールを基にしています。

メソッド

Apache::Cookie は呼び出し元のネームスペースに何もエクスポートしません。 リクエストオブジェクトを Apache::Coookie::new に渡す以外はオブジェ クト指向的インターフェースは CGI::Cookie と同一です。 詳細は CGI::Cookie のドキュメントを見て下さい。

new

CGI::Cookie::new によく似ていますが、 Apache リクエストオブジェクトが必要です。:

        my $cookie = Apache::Cookie->new($r,
                             -name    =>  'foo', 
                             -value   =>  'bar', 
                             -expires =>  '+3M', 
                             -domain  =>  '.capricorn.com', 
                             -path    =>  '/cgi-bin/database',
                             -secure  =>  1 
                            ); 

bake

クッキーをオーブンに入れて焼きます。(出力されるHTTPヘッダに Set-Cookie ヘッダを付加します。)

    $cookie->bake;

parse

文字列が渡された場合はそれを、そうで無ければ Cookie ヘッダをパースします。:

    my $cookies = $cookie->parse; #hash ref

    my %cookies = $cookie->parse;

    my %cookies = $cookie->parse($cookie_string);

fetch

Coookie ヘッダを解析、取得します。:

    my $cookies = Apache::Cookie->fetch; #hash ref

    my %cookies = Apache::Cookie->fetch;

as_string

cookie オブジェクトを文字列化します。

 # $cookie->bake と同じ
 $r->err_headers_out->add("Set-Cookie" => $cookie->as_string);

name

cookie の名前を取得もしくは設定します。

 my $name = $cookie->name;

 $cookie->name("Foo");

value

cookie の値を取得もしくは設定します。

 my $value = $cookie->value;
 my @values = $cookie->value;

 $cookie->value("string");
 $cookie->value(\@array);

domain

cookie のドメインを取得もしくは設定します。

 my $domain = $cookie->domain;
 $cookie->domain(".cp.net");

path

cookie のパスを取得もしくは設定します。

 my $path = $cookie->path;
 $cookie->path("/");

expires

cookie の有効期限を取得もしくは設定します。

 my $expires = $cookie->expires;
 $cookie->expires("+3h");

secure

cookie の secure フラグを取得もしくは設定します。

 my $secure = $cookie->secure;
 $cookie->secure(1);

バグ

RFC 2964-5 の実装が完全ではありません。
value はハッシュリファレンスも引数として受け取るべきです。
OS X では動作しないと報告されてます。(リンクの問題でしょうか?)

SEE ALSO

Apache(3), Apache::Request(3), CGI::Cookie(3)

作者

Doug MacEachern, updated for v1.0 by Joe Schaefer