- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:session,タスク作成,formでPOST後戻る、データ復帰、再入力不可)
session,タスク作成,formでPOST後戻る、データ復帰、再入力不可
このQ&Aのポイント
- phpのフォームでPOST後に戻る場合、データが消えてしまう問題が発生しました。sessionを追加することでデータの復帰を試みましたが、再入力時にエラーが発生します。
- session.cache_limiterをnoneに設定したり、キャッシュ関連の設定を削除することでデータの消失を防ぐことができましたが、再登録時にエラーが発生します。
- 戻るボタンで前のページに戻り、[F5]キーでリフレッシュすることでデータの消失を防ぐことができますが、より使いやすい方法を求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考にされたスクリプトは、どちらかといえば、CSRF対策のコードで、二重登録防止の方法ではなさそうです。 そして、誤入力があった場合に戻る、というのがいまいち良くわかりません。 誤入力、というのは、検証用の関数かなんかでPHPスクリプトが入力不備と判断した場合、という意味でしょうか。 フォームと一口に言っても、実装方法はいろいろあるので、どのような画面遷移なのかを教えてください。
その他の回答 (1)
- hogehoge78
- ベストアンサー率80% (433/539)
回答No.2
>また効果的な二重登録防止の方法などございましたらご教授願えればと思います。 二重登録防止のみを考える場合であれば、最後、登録が完了したところで、 <?php header('Location: thanks.php'); ?> などとして、別の登録完了と記述しているページへリダイレクトしてしまえばよいのではないでしょうか。 そうすれば少なくともF5を押したときに、再度POSTされることはなくなります。
質問者
お礼
なるほど。 見よう見まねでやってみてるのですが、少しはちゃんと 勉強しないと駄目かなと思ってきました。 このたびはありがとうございました。
補足
hogehoge78さん ご回答ありがとうございます。 >どのような画面遷移なのかを教えてください。 (1)顧客情報登録画面→(2)入力確認画面→(3)登録 という流れで、(2)のところで(1)の入力チェックにより入力漏れなどが ありに(1)に戻った際にデータがという話でした。 がよくよく考えてみると(1)と(2)の間にこの機能は必要なくて (2)と(3)の間でやればいいことに気づきました。 また効果的な二重登録防止の方法などございましたらご教授願えればと思います。