Re: ブラウザで画面を戻れないようにしたい

2020年9月14日 at 13:11

フォーラムの皆さまへ

いつもお世話になっております。
このたび質問させていただいた件で、アンケート確定後、ブラウザの「戻る」ボタン
で画面を戻ろうとした後、「進む」ボタンをクリックして再度「アンケート回答
ありがとうございます」メッセージを表示させた際、回答内容が記載されていない
空メールが勝手に送信される件で、

コントローラ側のコードを再度見直し、
以下のように対処することで、何とか送信されなくなったようでございます。

【対処方法】
1.システムからユーザ情報を取得(ユーザ情報が取得できた場合2へ進む)

2.1で取得したユーザIDに紐づく受講科目一覧を、Expressの「受講科目」エンティティ
 より取得(データが1件以上あった場合、3に進む)

3.アンケート入力画面からPOSTされた科目IDを、2で取得したデータセットと照合
 する(見つかった場合4へ進む)

4.3で科目IDと、POSTされた科目IDが一致した場合、受講科目エンティティのフラグ
 フィールドのデータを取得して、値が「1」になっていない場合のみ、5へ移動

5.アンケートビューよりPOSTされた各回答データを「アンケートAまたはB」エンティティ
 に新規登録

6.「受講科目」エンティティの、該当するデータのフラグを「1」に変更

7.続けて、回答内容をメール送信

この結果、ブラウザの「戻る・進む」ボタンをクリックして、画面を再表示させまして
も、メールは1回しか飛んでこなくなりました。
おそらく、コントローラ側での処理コードでの条件分岐のコンテキストがおかしかった
のではないかと推察しております。

抽象的な質問内容で、大変申し訳ございませんでした。
また、大変お騒がせいたしまして、申し訳ございません。

そのようなわけで、自己解決いたしましたので、ご報告申し上げます。
クライアントサイドのブラウザ操作については、完全には防止できないと思いますので、
アラートを表示させ、画面上のボタンから操作を行うように案内しております。

今後ともなにとぞよろしくお願い申し上げます。