dポイントプレゼントキャンペーン実施中!

以前も問い合わせさせていただいた件なのですが、
未だ解決していないので、再掲させていただきます。

やりたいことは、
個人認証のページを作り、ログオフ後、ブラウザの戻るボタンを押しても、
ログイン中となるのを避けたい。
以下のような感じで、cookieを使って実現しようとしているのですが、
ログオフ時にcookieの削除は、うまくいったのですが、
ブラウザの戻るボタンでログイン中のページに戻ると、
$ENV{'HTTP_COOKIE'}の中身を見ると、実際にはCookieは削除されているにも関わらず、
Cookieの情報がよみこまれているため、ログイン中となってしまいます。
何か基本的なやり方を間違っているような気がします。
どなたかご教授願います。


↓a1.cgi(ログイン画面)--------------
 :
(ID、パスワード認証後)
#Cookie書き込み
print "Content-type: text/html\n";
print "Set-Cookie: NAME=aaa; expires=Tue, 1-Jan-2030 00:00:00 GMT;\n";
print "\n";
 :
↑a1.cgi(ログイン画面)--------------


↓a2.cgi(ログイン中)--------------
 :
#Cookie読み込み
$cookie01 = "$ENV{'HTTP_COOKIE'}\n";
 :
<HEAD>
<!-- キャッシュクリア -->
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT">
 :
</HEAD>
 :
↑a2.cgi(ログイン中)--------------


↓a3.cgi(ログオフ)--------------
 :
#cookie削除。
print "Content-type: text/html\n";
print "Set-Cookie: NAME=aaa; expires=Fri, 31-Dec-1999 23:59:59 GMT;\n";
print "\n";
 :
</HEAD>
 :
↑a3.cgi(ログオフ)--------------



※a1.cgi、a2.cgi、a3.cgiは同じディレクトリです。
よろしくお願いします。

A 回答 (1件)

<meta http-equiv="Pragma" content="no-cache">


が効かずキャッシュされる場合があったと思います。

キャシュコントロールならどうでしょう。
htmlヘッダではなくてhttpヘッダでの出力です。
Cache-control: no-cache, no-store, must-revalidate
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
また、ご返事遅れましたことをお詫び申し上げます。

ご指摘のとおり、「キャシュコントロール」で万事うまくいきました。
大変、勉強になりました。
本当にありがとうございました。

敬具

お礼日時:2011/02/24 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!