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

質問させてください

あるサイトを作成しているのですが、
お客様の要望で「フォームページの履歴を残さない」ようにして欲しいと言われました。

要は「POST時に履歴を残さない方法」がわからないのです。

javascriptのlocation.replaceでは履歴が残らないことは、わかっているのですが
通常のPOST送信でそのような仕掛けはできるものなのでしょうか。

手法としてはブラウザの設定でやるのではなく、HTMLやjavascriptで実現させたいです。

以上、よろしくお願いします。

A 回答 (4件)

画面遷移のないajax通信すればいいんじゃないでしょうか。


URL自体移動しないので、履歴はのこりません。
技術的にはそんなに難しくありませんが、セキュリティ対策はちゃんとしないとダメですね。
    • good
    • 0

 ブラウザの「戻る」で元の画面に戻れないのを何とかしたいと言うことでしょうか?・・当初の要望と異なりますが・・


 フォームデータを処理後、redirectなどで別のURLのページにジャンプさせているのでは?

 だとしたら、確認画面自体をそのプログラム自体から出力させれば、元のページに戻れるはずですが?
 私はいずれかの方法を使います。

・処理後の確認画面自体でエラーやメッセージを含んだ「フォームページ」を出力させる。
 perlCGIの場合、__END__の後にフォーム画面のHTMLを書き、必要な場所に<!-- name_value-->とか目印を入れて書き出すとき、そこを入力値に入れ替える。とか
 入力値(特に誤った値)を抹消するならこの方が良い

・エラーや確認画面を出力させる。
 そのまま戻れますが、すでに入力した値は残る。
    • good
    • 0

忘れてました。

履歴は残りますがフォームに入力した値を実質的に覚えさせない簡単な方法はあります。暗証番号やIDの入力ホームのname属性の値を、セッションごとに変えてしまう方法です。履歴は残りますが、自動的に入力させることは防げます。
 なお、cookieについては、HTTP応答ヘッダでコントロールできます。

この回答への補足

フォームの機能として、入力送信した後のフォームページは、
ブラウザバックを行うと入力不可エラー画面を出力します。(フォーム自体の改変は不可)
お客さんは、それが気に入らずブラウザバックでその前の画面に戻りたいという要望です。
入力値を覚えさせない方法は知っております。

なにか方法はないのでしょうか。

補足日時:2012/01/16 21:09
    • good
    • 0

「フォームページの履歴を残さない」が、サーバーに記憶させないでしたら可能です。

しかしブラウザにはムリです。してはなりません。
 なぜなら、悪意のあるサイトがユーザーに記録が残らない方法で、ユーザーのコンピューターを操作することですね。
 ウィルスを作成すれば可能かもしれませんが、現在のブラウザはそのような処理を受け付けなくなっています。
「それは、セキュリティ・ユーザー保護の関係で不可能です。利用者がそれぞれのブラウザについて設定してください。」と言うしかありません。
「firefoxでしたら、ツール→オプション→プライバシー→履歴→「記憶させる履歴を詳細設定する」で、「常にプライベートブラウジングする」もしくは「個別に設定」できます。

 

この回答への補足

お返事ありがとうございます

ブラウザの設定をいじらないでの実現方法はないのですか。
残念です。

ちなみにサイトのターゲットブラウザはスマホです。

補足日時:2012/01/16 21:04
    • good
    • 0

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