2016-09-20 6 views
1

私はパブリックアクセスタブレットからHTMLを入手しました。 過去のフォーム提出を表示するために、履歴に戻ることをユーザーが確実に防ぐ方法はありますか?過去のコンテンツ/履歴をHTMLで表示しないようにする

私はそれをサーバー側で使用するか、JavaScriptを使用して解決するか、またはその2つの組み合わせを探しています。

私は、バックアクションを防ぐJavaScriptコードを試しましたが、すぐ戻ることができます。

フォームは、送信に失敗したときに値を記憶するように設定されていますが、送信が成功した後に値を取得できないようにしてください。

これはおそらくセッションを使用して、PHPを使用して処理するのが良いですか?

+1

Ajaxを使用することができます。これらの呼び出しは履歴にはまったく終わりません。フォーム - > Ajaxでの結果の表示と表示 - >ユーザーまたは別のページへのリダイレクト...もし彼らが戻るボタンを押すと、再び空のフォームに来るでしょう... –

答えて

0

は、[戻る]ボタンをクリックしてフォームの再送信を防ぐために多くの方法があります。

一つの方法は、すべてのフォームフィールドが空であることを、これはページのロード時に行うことができます設定することです。

セッションを使用して、ユーザーが既にフォームを送信したことを確認できます。 クッキーおよび/またはローカルストレージも同様に使用できます。

ただし、クッキーを削除してローカルストレージをクリアすることができるため、データベースにクエリーして重複や再サブミッションをチェックしたり、フォームフィールドをクライアント側で空の文字列に設定したりする方が便利です。

+0

問題は再防止にありません - 送信(のみ)ではなく、ユーザーが戻るボタンを使用して以前のエントリが何であったかを確認するのを妨げることになります。 – Daniel

+0

ページのキャッシュを無効にするのはどうですか?私が間違っていると私を訂正しますが、ほとんどのブラウザは、戻るボタンを押すか履歴に戻ると、キャッシュされたページを表示し、そのページでスクリプトを再実行しませんか? –

+0

フォームをドキュメントの読み込み時にリセットすることができます。 $( '#myform')。リセット(); –

関連する問題