【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

phpでフォームをつくり二重登録防止のためこちら(http://code.nanigac.com/source/view/178)のサイトを参考にセッションを追加しました。
が、フォームで誤入力の後戻ると入力したデータが消えるので
session.cache_limiterをnoneにしたり、METAに入っているキャッシュ関連のものを消してデータが消えないようになりましたが、
今度は再入力後登録しようとすると上記の機能によりエラーが出されてしまいます。

戻るボタンで前のページに戻り、[F5]キーでリフレッシュすれば
データも消えず、登録も出来ましたが、それもどうかと思うので
戻るボタンで戻っただけで再登録できるようにしたいのですが、
どなたかやり方を教えてください。

A 回答 (2件)

参考にされたスクリプトは、どちらかといえば、CSRF対策のコードで、二重登録防止の方法ではなさそうです。



そして、誤入力があった場合に戻る、というのがいまいち良くわかりません。
誤入力、というのは、検証用の関数かなんかでPHPスクリプトが入力不備と判断した場合、という意味でしょうか。
フォームと一口に言っても、実装方法はいろいろあるので、どのような画面遷移なのかを教えてください。

この回答への補足

hogehoge78さん

ご回答ありがとうございます。
>どのような画面遷移なのかを教えてください。
(1)顧客情報登録画面→(2)入力確認画面→(3)登録
という流れで、(2)のところで(1)の入力チェックにより入力漏れなどが
ありに(1)に戻った際にデータがという話でした。
がよくよく考えてみると(1)と(2)の間にこの機能は必要なくて
(2)と(3)の間でやればいいことに気づきました。

また効果的な二重登録防止の方法などございましたらご教授願えればと思います。

補足日時:2009/09/18 08:47
    • good
    • 0

>また効果的な二重登録防止の方法などございましたらご教授願えればと思います。


二重登録防止のみを考える場合であれば、最後、登録が完了したところで、
<?php
header('Location: thanks.php');
?>
などとして、別の登録完了と記述しているページへリダイレクトしてしまえばよいのではないでしょうか。
そうすれば少なくともF5を押したときに、再度POSTされることはなくなります。
    • good
    • 0
この回答へのお礼

なるほど。

見よう見まねでやってみてるのですが、少しはちゃんと
勉強しないと駄目かなと思ってきました。

このたびはありがとうございました。

お礼日時:2009/09/22 15:33

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


おすすめ情報