• ベストアンサー

CGI:Cookie保存期限の指定について

CGI:Cookieモジュールを使用して、クッキーの設定を行っています。 そこで、保存期限の指定方法について教えて頂きたいのです。 日にち単位、年単位の保存方法はなんとかわかったのですが、 (-expires=>'+7d' -expires=>'+1y' で正しいですよね?) 時間単位での指定方法がわからないのです。 例えば、『毎時0分0秒にクッキーを消す』と言った指定はできるのでしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • trisagion
  • ベストアンサー率68% (15/22)
回答No.2

毎時0分0秒にクッキーを消すという意味は、クッキーの有効期限がクッキー発行後の最初の0分0秒までという事でしょうか?(例えば12:30に発行したら13:00まで) こういう意味であるのなら、GMT形式で有効期間を指定すれば可能です。 GMT形式 [書式] Wdy, DD-Mon-YYYY HH:MM:SS GMT [例] Fri, 31-Dec-1999 23:59:59 GMT 1)現在の時間を取得 2)その時間を次の0分0秒に変更 3)GMT形式に時間を変換しクッキーの発行 こんな流れで出来るでしょう。 @month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); @time = (localtime(time))[0 .. 6]; $time[5] += 1900;#西暦は1900引いた値なので元に戻す $time[0] = 0;#0秒にする $time[1] = 0;#0分にする $time[2] += 1;#1時間進める $time = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT",$week[$time[6]],$time[3],$month[$time[4]],$time[5],$time[2],$time[1],$time[0]); $timeがGMT形式の時間ですので-expiresに指定します。

yse-goo
質問者

お礼

どうもありがとうございました。 わかりやすく解説して頂いて、大変参考になりました。

その他の回答 (1)

  • omni2
  • ベストアンサー率53% (33/62)
回答No.1

-expires => "Wed, 23-Mar-2005 14:14:14 GMT" で指定できるはずです。 "曜日, 日-月-西暦 時:分:秒 GMT"です。 「毎時」に消す方法はわかりません。

yse-goo
質問者

お礼

どうもありがとうございました。

関連するQ&A

専門家に質問してみよう