質問: nyuryoku1.php(名前とメールアドレスなど個人情報入力) nyuryoku2.php(趣味のカテゴリ、アンケート) submit.php(確認画面 送信) というステップで入会希望のフォームを作成しています。 送信完了画面はsubmit.phpで送信後にlocationで飛ばす形で表示したいです。 セッションで値を受け渡ししたいですがうまくできません。 nyuryoku1.php nyuryoku2.php submit.php には冒頭に下記のように記載しました "; ?> nyuryoku1.php から nyuryoku2.phpに移動した時には $_SESSION['onamae']をechoすると表示されます。 そのままリロードなどせずにsubmit.phpに移動した時も $_SESSION['onamae']をechoすると表示されます。 submit.phpでリロードしたりすると $_SESSION['onamae']をechoすると消えています。 nyuryoku1.php から nyuryoku2.php に戻った場合も 消えてしまいます。 nyuryoku1.php で入力した $_POST['お名前']の内容を $_SESSION['onamae'] に入れて 入力1、入力2、確認画面を 行ったり来たりしても使えるようにしたいです。 hiddenを使うしかないでしょうか。 アドバイスいただければと思いますよろしくお願いいたします。
回答: コード追ってみるのが良いだろうけど、多分空の $_POST['お名前'] で上書きされちゃってるんだと思います。 $_SESSION['onamae'] の変更を $_POST['お名前'] の中身があったときだけの限定にすると意図した動作になると思います。 ただ、今書かれている内容だけだと、入力値の検証とか form 処理に必要な処理が見えてきません。学習中なんだと思いますが、併せて form 投稿に必要な処理を調査してみて下さい。