- ベストアンサー
Cookieの期限設定の書式について
- ASPでCookieの期限を設定しているが、期限が正しく設定されない問題が発生している。
- Cookieの期限の書式は特定の形式でなければ正しく設定されないことが分かった。
- 次回は書式に厳密に従ってCookieの期限を設定する必要がある。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Cookieが残ってしまいます と言うのは、Cookieが送られてしまうと言うことでしょうか?それとも一時フォルダにCookieファイルが残っているということでしょうか? 一時フォルダにファイルが残っていても、有効期限が切れていればCookieは送られないはずです。 >2005/07/10 22:15:42 >という値が入っているから期限が上手く設定できていないのでしょうか? これはあくまでASP内での情報の保持であって、レスポンスとして送られるときはちゃんとした書式になって出力されます。
その他の回答 (2)
- 2NN
- ベストアンサー率40% (143/353)
#1ですが、誤答してしまったようです。。 大変失礼いたしました。
- 2NN
- ベストアンサー率40% (143/353)
Cookieは様々なブラウザが解釈するので、 書式は統一していないと有効にならないと思います。
補足
ご回答ありがとうございます。 googleで「ASP Cookie」と検索してみたところ、表示される日本語サイト の例では、 http://www.webkoza.com/doc1/cookie_a.htm#ASP http://www.site-cooler.com/kwl/asp/9.htm#9-4 http://www.site-cooler.com/tips/asp_cookie_write.htm すべて、 Response.Cookies("Knave").Expires = Date + 365 というように、Date関数に単純に数字を足すだけで、期限設定ができる、 との表現でかかれており、実際にこの数式を実行したときは、質問に書き ましたような、 Sun, 21-Feb-2002 02:22:54 GMT という書式にはならず、 2006/07/11 というように、「日にちの単純足し算」になっているようですが。。。
お礼
問題解決を確認したテストスクリプト ■Cookie書き込み用スクリプト - [CookieWriteTest.asp] <% CheckValue="いろはにほへと" WriteTime=Now Response.Cookies("CheckValue")=CheckValue Response.Cookies("CheckValue").Domain="aaaa.co.jp" Response.Cookies("CheckValue").Expires= DateAdd("n", 3, Now) Response.Cookies("CheckValue").Path="/" Response.Cookies("WriteTime")=WriteTime Response.Cookies("WriteTime").Domain="aaaa.co.jp" Response.Cookies("WriteTime").Expires= DateAdd("n", 3, Now) Response.Cookies("WriteTime").Path="/" %> ■Cookie読み込み用スクリプト - [CookieWriteTestCheck.asp] <html> <head> <title></title> </head> <body> <% CheckValue=Request.Cookies("CheckValue") WriteTime=Request.Cookies("WriteTime") %> CheckValue:<%=CheckValue%><br> WriteTime:<%=WriteTime%><br> 現在の時刻:<%=Now%><br> </body> </html> ■Cookie削除用スクリプト - [CookieWriteDel.asp] <% CheckValue=Request.Cookies("CheckValue") WriteTime=Request.Cookies("WriteTime") Response.Cookies("CheckValue")=CheckValue Response.Cookies("CheckValue").Domain="aaaa.co.jp" Response.Cookies("CheckValue").Expires = DateAdd("d", -1, Now) Response.Cookies("CheckValue").Path="/" Response.Cookies("WriteTime")=WriteTime Response.Cookies("WriteTime").Domain="aaaa.co.jp" Response.Cookies("WriteTime").Expires = DateAdd("d", -1, Now) Response.Cookies("WriteTime").Path="/" %>
補足
ご回答ありがとうございます。 まず、 >一時フォルダにファイルが残っていても、有効期限が切れていればCookie >は送られないはずです。 こちらについては、テンポラリーファイルの削除は行わずにテストしており ますので、テンポラリーに残っているキャッシュファイルの有無が問題では ないようです。 >これはあくまでASP内での情報の保持であって、レスポンスとして送られるときはちゃ >んとした書式になって出力されます。 こちらのご回答を参考に、再度基本的な以下の様なASPを作成しテストしたところ、問題なく期限設定は出来ているようです。使用したいスクリプト上に問題があるように思わ れますので、使用したいスクリプト上でのCookieの期限設定に問題がないかどうか、 再度別質問として投稿させて頂きたいと思います。 お礼と致しまして、お礼文のところに、今回テストに使用しましたスクリプトを掲載 致しますので、今後どなたかが同じ問題で悩まれたときの参考になれば幸いです。