ハマっている「お菓子」を教えて!

PHPプログラム初心者です。

現在フォームに入力したデータをPHPのmail()関数を使用して特定のメールアドレスへ送信するプログラムを作成しています。

プログラムの流れとしては、

入力画面

確認画面

送信完了画面(メールでデータ送信)

ここで問題があるのですが、確認画面で入力ミスが見つかりブラウザーの「戻る」ボタンで入力画面に再度戻った場合、入力したデータが全て消えてしまいます(ブラウザーはIE。)。どうすれば、確認画面から入力画面に戻っても入力したデータが消えないようにできるのでしょうか?

データの引渡しをGETではなくPOSTにすればよいだけですか?

また、現在データの引渡しにはセッションではなくtype=hiddenを使用しているのですが、これも関係しているのでしょうか?

よろしくお願いします

A 回答 (2件)

サーバ設定も関係するはずなので、PHPのみでの対応は不可能。


ブラウザの「戻る」ボタンは使わせないのが原則。
セッションを使えばデータを一時保存しておいて戻るとデータを展開すると言うのは可能。(送信時にセッションを消す)
ただし、多くのサーバはブラウザの戻るボタンを押した場合、データを再送信するか聞いてくるはずなので、あまり実用的とはいえないかもしれない。
ブラウザの戻るボタンは使わせずに、PHP側で用意した戻るボタンを使用させるようにしたほうが良いでしょう。

この回答への補足

moon_nightさん

ご回答ありがとうございます。

>ブラウザの戻るボタンは使わせずに、PHP側で用意した戻るボタンを使>用させるようにしたほうが良いでしょう。

上記のコメントについてですが、moon_nightさんがおっしゃっているのはphpファイル内にjavascriptの<a href="javascript:history.back();">などのプログラムを埋め込んでそのリンクを押してユーザにページを戻ってもらうということですか?

もしJavascriptを使用するのではなくPHPコードで行なう場合、差し支えなければ、簡単なコードをご教授下さい。

kitty1000

補足日時:2007/08/27 23:06
    • good
    • 0

ブラウザの「戻る」や「履歴」で戻ったときに、formの入力内容を次のページへ行く直前の状態に再現するか、ページ構築時の状態にするかはブラウザ側の問題でもあるので、サーバーやphpからは操作は難しいでしょう。


FireFoxやOperaはformの入力内容を再現するけど、IEは再現しないようですね。
No1の方のおっしゃるように「戻る」機能もphp側でページ内にボタンやリンクで作る方が賢明かと。
    • good
    • 0
この回答へのお礼

hrm_mmmさん

ご回答ありがとうございました。

kitty1000

お礼日時:2007/08/27 22:59

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


おすすめ情報