・register_ja.php
(とある会員登録の名前や住所を入力してもらうページ)
・register.php
(とある会員登録のいわゆる学歴などを入力してもらうページ)
・register_preview.php
(register_ja.phpとregister.phpで入力したものを確認するぺージ)
3ファイルだと長くなるので、簡単に説明しますと
register_ja.phpで入力してもらった内容をセッションに保存して次ページであるregister.phpに遷移します。
session_start(); if (!is_null(filter_input_array(INPUT_POST))) { $_SESSION['join'] = $_POST; header('Location: register.php'); }
register.phpでも、入力してもらった内容をセッションに保存して次ページであるregister_preview.phpに遷移します。
session_start(); if(!empty($_POST)){ $_SESSION['join'] .= $_POST; header('Location: register_preview.php'); }
register_preview.phpでは
register_ja.phpとregister.phpで保存したセッションから内容を取り出していき、表示させます。
session_start(); ≪省略≫ <tr> <td>E-mail</td> <td><?php echo h($_SESSION['join']['email']); ?></td> </tr> <tr> <td>E-mail (確認用)</td> <td><?php echo h($_SESSION['join']['email_conf']); ?></td> </tr> <tr> <td>Password</td> <td><?php echo h($_SESSION['join']['pw']); ?></td> </tr> <tr> <td>Password (確認用)</td> <td><?php echo h($_SESSION['join']['pw_conf']); ?></td> </tr> ~~~~~~~~~~~~~続く //ここまでがregister_ja.phpの内容。 //ここからはregister.phpの内容。 <tr> <td class="h3" colspan="2">スキル</td> </tr> <tr> <td>プログラム言語</td> <td>経験年数</td> </tr> <tr> <td><?php echo h($_SESSION['join']['programs1']); ?></td> <td><?php echo h($_SESSION['join']['programs_year1']); ?></td> </tr> ~~~~~~~~~~~~~続く
すると、1つ前のページのregister.phpは内容がしっかり表示されているのですが、
2つ前のページのregister_ja.phpはIllegal string offsetとでて表示されないのです。
試しに、register_preview.phpの記述をregister.phpにコピってどんな表示するのか試したところ、表示されているんです。
セッションはページをまたいで保存できないのかなぁと思っているのですが、
どうすれば
register_ja.phpでセッションに保存した内容も
register.phpでセッションに保存した内容も
register_preview.phpで扱えるようになりますか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/15 12:08 編集
2016/06/15 12:20