現在は、check.phpにindex.phpで入力した値が入っていない
渡す方法は「session」と「cookie」の2パターンあるが
今回は「session」の方法で渡すのがベスト
cookieを使ってindex.phpの入力値をブラウザにずっと保存しておく必要性はなく、
個人情報なので危険なためです。
POSTで渡す方法もありますが、今回はcheck.phpで書き直す機能も使うので、
index.phpとcheck.phpの間で情報の行き交いあるため、
POSTでいちいち渡すのは非効率になる。
簡易登録などの一時的なやりとりは「session」が最適になる。
よって、入力画面で入力したデータをsessionで保存してみる。
※セッションとは:WEBアプリにおいて、各ユーザー固有のデータを格納するための仕組み
ユーザー毎に異なるログイン情報やカートなどの機能実現のためにセッションを使用する。
スクリプト先頭にsession_start()ファンクションを記述してセッションを開始する。
セッションに値を保存するというのは header()の直前、エラーが起こっていないことが
確認出来たら、セッションに値を入力していく。
if(empty($error)) {
$_SESSION['join'] === $_POST;
header('Location: check.php');
exit();
}
$_SESSION['']
のjoinというキーに$_POSTの値を保存する。
これでcheck.phpの方でもsessionの値が参照できる。
次にcheck.phpのコード記述をしていく
スクリプト先頭にsession_start()ファンクションを記述してセッションを開始する。
if(!isset($_SESSION['join'])){
header('Location: index.php');
exti();
}
$_SESSION['join'])
の値を検査する。
$_SESSION['join'])
の値が入っていなければ(!isset)、index.phpファイルに画面を戻す。
次にindex.phpで'$_SESSION['join'])'に格納されている
ニックネーム、メールアドレス、パスワード情報をそれぞれcheck.phpで取り出して、表示する。
<dt>ニックネーム</dt>
<dd>
<?php print(htmlspecialchars($_SESSION['join']['name'],ENT_QUOTES));?>
< /dd>
htmlspecialchars()は安全に画面表示させるための記述
'$_SESSION['join'])'というのは2次元配列(配列が2段回になった状態)になっている。
理由はindex.phpの方で、'$_SESSION['join'])'という配列に$_POSTをセットしているから。
$_POSTは元々配列なので取り出す記述として、'['join']['name']'といったjoin配列の中のnameを取り出すという
記述方法になる。