• ベストアンサー

セットされているCookieの内容を変更

set cookieで既にセットされているCookieの内容を変更する方法を教えていただきたく。(セットされているクッキーを書き出し、一部データを書き換え、再度セット?) また、参考になるサイトも教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • feininger
  • ベストアンサー率41% (74/180)
回答No.2

> hogeは可変で取得するのが困難です。 hogeの部分を可変にするのは面倒なので固定にしたほうがよいです。 > やはりset-cookieの一覧をまず変数に出力し、内容を置換し、再度set-cookieするような事ができるといいなと思っています。 と、いうことであれば下記が参考になるかと。 http://tohoho.wakusei.ne.jp/wwwcook.htm 複数のデータは自前のセパレータ(:,&など)で区切って1つの文字列にまとめるとすっきりします。 Set-Cookie: BBS=id:0123:author:aaa; expires=~ Cookieを送信するときもそうですが、読み出すときもセパレータで分解する必要がありますし、これらの文字列処理は自前で用意する必要があります。 (自前セパレータとして = や ; をCookieで使用するとなんとなくヤバイのは想像できますよね)

select_nao
質問者

お礼

いろいろご紹介ありがとうございました。 紹介いただいたページで勉強してみます。

その他の回答 (2)

  • feininger
  • ベストアンサー率41% (74/180)
回答No.3

っと、 > #set-cookieの一覧の出力方法が分からないです。^^; 環境変数 $ENV{'HTTP_COOKIE'} をとりあえず表示させてみるとよいかと。

select_nao
質問者

お礼

表示できました。初歩的なことですいません。^^;

  • feininger
  • ベストアンサー率41% (74/180)
回答No.1

変更したデータでCookieを再度送信すれば書き換わりますよ。 例えば、前回↓のような内容で送信したものを Set-Cookie: hoge=aaabbbccc; expires=~ 新たに↓で送信すると aaaXXXccc としてブラウザに保存されます。 Set-Cookie: hoge=aaaXXXccc; expires=~ 注意点として、 hoge の部分を piyo などと変更して送信してしまうと、 piyo を新規に追加してしまうので、ブラウザには hoge と piyo という2つが存在してしまうことになります。

select_nao
質問者

補足

まさに、そのhogeの部分が変わってしまいます。 そして、hoge と piyo という2つが存在するのは困ってしまいます。hogeを一旦削除するという方法もあるのですが、hogeは可変で取得するのが困難です。 やはりset-cookieの一覧をまず変数に出力し、内容を置換し、再度set-cookieするような事ができるといいなと思っています。 可能でしょうか? #set-cookieの一覧の出力方法が分からないです。^^;

関連するQ&A