my $cookie = CGI::Cookie->new(%options);
$r->header_out('Set-Cookie' => $cookie);
違う名前の複数のCookieを送信したい場合、
my $cookie = CGI::Cookie->new(%options);
my $cookie2 = CGI::Cookie->new(%options2);
$r->header_out('Set-Cookie' => $cookie);
$r->header_out('Set-Cookie' => $cookie2);
としても最後にセットしたクッキーしか送られなかったりして、うきーっとなります。こういうときはheader_outの代わりにcgi_header_outを使うと複数のクッキーをセットできちゃいます。
my $cookie = CGI::Cookie->new(%options);
my $cookie2 = CGI::Cookie->new(%options2);
$r->cgi_header_out('Set-Cookie' => $cookie);
$r->cgi_header_out('Set-Cookie' => $cookie2);
恥ずかしながらこのことを知らず、クッキーが保存されないよ~としばらく半べそ状態でした。。
バージョンが違うのか環境が違うのかは知りませんが、私の環境ではcgi_~メソッドが無く、全べそ状態でしたw
返信削除(Apache::RequestRec by mod_perl 1.99)
$r -> headers_out -> add ('Set-Cookie' => $cookie);
$r -> headers_out -> add ('Set-Cookie' => $cookie2);
最終的にモジュールのperldoc読んで上記のような代替メソッドを発見。
あまり情報の少ない部分でしたので、一応コメントしてみました。
以上でし。
情報ありがとうございます。
返信削除これは、mod_perl1.xと2.xの違いによるものですね。
mod_perl2.xではそう書かないといけないっすね。