PHP:“5分で実装”PHPでsession(セッション)中のページごとの設定方法、データの受渡し
最近便利な世の中になりました。
WordPressを使ってればプラグインで簡単にメール機能も追加できるし、フレームワーク使えばコンポーネントなんかでサクッとやってくれちゃうし。
しかし、社内用の簡単なシステムをPHPでサクッと作るということになり、フォームで確認画面作ろうとソースガリガリ書いてたら『あれ?セッション時の値受け渡し、どうだったっけ?』とたいていド忘れします。(ギークな皆さんはないかもしれませんけどw)
っていうことで“5分で実装”ファイルごとのセッションの設定と変数の扱い方など。
ファイルの流れとしては、index.php → confirm.php → result.php といった流れでしょうか。
まずは、情報入力ページのセッション開始と
各<input>タグのvalue属性に、次画面(confirm.php)の確認画面から戻った場合に入る値を指定してやります。
<button>タグのクリアボタンでは、セッションの値も入力フィールドの値と一緒にクリアできるように『session_destroy();』を実行しています。
続いて確認画面であるconfirm.phpです。
・確認画面となるconfirm.php
<?php //index.php同様、冒頭に挿入 session_start(); ?> <html> <head></head> <body> <form action="result.php" method="post" enctype="multipart/form-data"> <table> <tr> <th scope="row">お名前</th> <td> <?php echo $_POST["name"]; $name = $_POST["name"] ?> <input name="name" type="hidden" value="<?php print(htmlspecialchars($_SESSION["name"] = $name)); ?>" /> </td> </tr> <tr> <th scope="row">ふりがな</th> <td> <?php echo $_POST["kana"]; $kana = $_POST["kana"] ?> <input name="kana" type="hidden" value="<?php print(htmlspecialchars($_SESSION["kana"] = $kana)); ?>" /> </td> </tr> <tr> <td colspan="2" scope="row"> <button type="submit" >確認画面へ進む</button> <button name="return" type="submit" onclick="form.action=index.php'; return true" >登録フォームへ戻る</button> </td> </tr> </table> </form> </body>
13行目と20行目は、index.phpからPOSTで渡ってきた値をセッション用にそれぞれの変数に代入しています。
変数名の『$hoge』は全て同じでもインタプリタ的に上から処理されるので全部同じでもいいんですが、気持ち悪いしわかりにくくなるので違う変数名にしています。
14行目と21行名はindex.php同様、行ったり来たりするのでそれぞれのセッション変数に入れてます。
27行目はフロントページ(index.php)へ戻るためのボタンです。
あとは、confirm.phpの<form>タグ内に指定している通り、遷移先のresult.phpページ内でグローバル変数で受取ってから、適当に処理してください。
いつも読んでくれてありがとね!