雨谷の日和

過去20年で2,700を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

人狼BBS作成日記64

Cookie に値をセットするには、HTTPのヘッダ部分に「Set-Cookie」という項目を追加することになります。具体的には、以下のようになります。

Set-Cookie: jinro=[key]:[value],[key]:[value],...

サブルーチンとして書くなら、以下のようになるでしょうか。

sub SET_COOKIE {
  $cook = "key\:@_[0]";
  $cook =~ s/(\W)/sprintf("%%%02X", unpack("C", $1))/eg;
  print "Set-Cookie: jinro=$cook\n";
}

受け取った引数をkeyという名前でまず対にし、そのあとURL Encoding をして、Set-Cookie するだけです。
上記だと、一つの値しかセットできないので、今後もっと改良する必要が出てきますが、それはそれでまた考えることにします。当面は一つだけセットできれば問題ないですので。
あと、Cookie の有効期限とかそういうものも本当は設定した方が良いとは思うのですが、今回はそれも無しにしてあります。まあ、いずれ考えるということで。