2009-07-18 12 views
1

PHPでsendmailを実装したばかりで、フォームのhtmlページから呼び出されました。いくつかのテキストフィールドを入力し、送信ボタンを押してメールを送信する必要があります。ここまでは順調ですね。ヒストリで再訪するときにhtmlフォームを消去する

今、このフォームが正常にメールを送信するときにクリアする必要があります。

私の推測では、Internet Explorer(または他のユーザー)は、別のページに移動するときにすべてのフィールド値を保存すると思います。これにより、ブラウザの履歴に戻ってメールを再送信することが容易になります。私が望むのは、フォームキャッシュ(または何でも)がクリアされたメールの送信が成功したことです。これは、呼び出されるPHPページで行う必要があります。

誰かがこれを解決する手掛かりを持っていますか?

答えて

0

フォームページをキャッシュ不可能にして、クライアントが毎回要求するようにします。

0

唯一の問題は、[戻る]ボタンを使用してフォームを読むことができている場合:

window.onunload=function(){for(var i=0;i<document.forms.length;i++){document.forms[i].reset()}} 

このフォームを使用してページを残して/アンロードしないことを前提としています。

1

これはあなたの話ですか?

SO393882 - Cross-browser techniques for disabling password caching

彼らはほとんどのユーザー名/パスワードのものについて話しますが、私はこれらの技術のいずれかが、あなたのフォームに防ぐために必要なものを防ぐことができると思います。特に、入力フィールドの名前をハッシュ/変更するソリューションがあり、<input>タグにはautocomplete=offと表示されます。

0

フォームをAJAXで送信し、成功するとすべてのフォームフィールドをクリアするJavascriptを送り返すことができます。

0

また、苦労して入力したデータを消滅させるかどうかをユーザーに確認してください。特に、エラーの修正(たとえば、間違った電子メールアドレス)が必要なプロセスのステップに戻るボタンが必要な場合は特にそうです。

関連する問題