人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perl
perlで作ったフォームで送信後、ブラウザの戻るで戻った場合エラー表示をさせたいのですが、どういった方法が良いでしょうか。


perlに
print "Content-type: text/html\n";
print "Pragma: no-cache\n";
print "Cache-Control: no-cache\n";
print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n";
print "Last-Modified: Thu, 01 Dec 1994 16:00:00 GMT\n";


htmlに
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Cache-Control" content="no-cache">
<META http-equiv="Expires" content="0">

と記述してもwindowsのIEは「ページの有効期限切れ」と出るのですが、それ以外のブラウザ(macも含め)は普通に戻れてしまいます。

windowsとmacの主要ブラウザ全てに通用する「戻る禁止」はどのようにしたらよいでしょうか?

●質問者: pipi_n
●カテゴリ:インターネット ウェブ制作
✍キーワード:00 cache DEC GMT HTML
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● b-wind
●60ポイント

http://tech.bayashi.net/pdmemo/browsercache.html

やり方としては合っている様に見えますので、キャッシュはされていないのだと思いますが、有効期限切れのときにどのような挙動を示すのかは、ブラウザしだいだと思います。

確実にエラーにしたければ、JavaScript 等で禁止してしまうか、

CGI 側で、

・フォーム受付完了時に Cookie セット

・入力フォーム表示時に Cookie がセットされていればエラー画面を生成

等、工夫する必要があるのではないでしょうか。

蛇足ですが、Last-Modified ヘッダはこの場合つけないほうがいいように思います。

◎質問者からの返答

仕事で使うのでブラウザ次第という言い訳がきかなくて・・・

なるほど、cookieを使えばどのブラウザでも有効な手段ですね

しかしmacのIEはキャッシュ機能が強力なのでcookieでも行けるかどうか。

試してみます。

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

------------------

追記

Cookieを使用してやってみましたがブラウザの戻るボタンではCookieを読みに行かないようで

windowsのIEでもダメでした・・・

ただ、戻って入力フォーム表示はしてしまうのですが、再度送信されたときにはCookieの有無チェックができるので、それで対応するのがいいようですね。

ありがとうございました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ