一般的にウェブアプリケーションは、フォームにデータを入力し確認画面へ、そして登録完了画面へと進み、複数ページに渡ってデータを受け渡していきます。
その方法は「非表示項目(hidden)」と「セッション」及び「クッキー」などがあります。
今回は、ブラウザにはデータが表示されない「非表示項目(hidden)」を使い、入力データを複数ページに渡って送ってみます。
スポンサーリンク
デモの動作を見て分かるように、
まずフォーム画面(hidden1.html)があり、データを入力して「確認する」をクリックすると「確認画面」(hidden2.php)へ遷移します。そして登録ボタンをクリックすると最終的に「登録完了(hidden3.php)」画面へと移ります。
デモでは「確認画面」から「登録完了」の過程で、hiddenを利用しています。
説明
フォーム画面から確認画面へは以下のページを参照下さい。
hidden1.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<!DOCTYPE html> <html> <head> <title>フォーム画面</title> <meta charset="utf-8"> </head> <body> <h1>フォーム画面</h1> <form action="hidden2.php" method="post"> 名前を入力:<input type="text" name="yourname"> <input type="submit" value="確認する"> </form> </body> </html> |
hidden2.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php //$_POSTで受け取る $yourname = $_POST['yourname']; ?> <!DOCTYPE html> <html> <head> <title>確認画面</title> <meta charset="utf-8"> </head> <body> <h1>確認画面</h1> <?php echo $yourname."さん、でよろしいですか?"; ?> <form action="hidden3.php" method="post"> <input type="hidden" name="yourname" value="<?php echo $yourname; ?>"> <input type="submit" value="登録する"> </form> </body> </html> |
4行目でフォーム画面から名前を受け取り、$yourname変数で保存します。
※注意
本来ならばクロスサイト・スクリプティング(XSS)等のセキュリティ対策や、$_POSTの有無の判定を行わなければいけません。関連ページを参照して下さい。
20行目に着目して下さい。
inputのtype属性にhiddenを指定しています。
そしてvalueの値に、$yournameを指定すればその値を、次の画面であるhidden3.phpへそのまま送ることが可能となります。
次に登録完了画面であるhidden3.phpを作成します。
hidden3.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php //$_POSTで受け取る $yourname = $_POST['yourname']; ?> <!DOCTYPE html> <html> <head> <title>登録完了</title> <meta charset="utf-8"> </head> <body> <h1>登録完了</h1> <?php echo $yourname."さん、で登録完了いたしました。"; ?> </body> </html> |
hiddenで送られたデータは、そのまま$_POSTで受け取ることができます。