
早速、プログラミングを組んでいきましょう。まずは、テキストフィールドで入力されたデータの受け取り方法から説明します。

新規PHPドキュメントを作成し、前項で説明したように、テキストエンコーディングを「EUC」に変更します。フォームタグを追加して、テキストフィールド1つと、サブミットボタン1つを上のように追加します。
今回はとりあえず、ファイル名を「input.php」とします。
<form>タグのアクションは「input.php(このファイル自体)」に設定しましょう。
上記フォームが用意できたら、以下のように追記しましょう。
<body>
<?php
echo $_POST['name'];
?>
<form action="input.php" method="post" name="test_form" id="test_form">
<input name="name" type="text" id="name">
<input type="submit" name="Submit" value="送信">
</form>
echoは出力関数です。$_POST['name'];は、テキストフィールドで入力されたデーターを受け取る関数です。基本的にフォームで入力されたデーターは、POSTであれば、$_POST[];で、GETであれば、$_GET[];で受け取ることができます。
上記は、
テキストフィールド(name="name")に入力されたデーターを$_POST['name'];で受け取り、echoで出力させています。記述できたら、「F12」で確認してみましょう。テキストフィールドの上に、入力した文字が表示されたら成功です。
今回、「データの入力」と「入力されたデータの確認」、「データの修正」をそれぞれ別のPHPドキュメントで制御しています。しかし、基本的に$_POST[];で受け取ったデータは、ページを移動してしまうと消えてしまいます。
それでは、入力データの内容を確認するPHPドキュメントにデーターを渡せません。そこで、ページを移動してもデーターが保持される仕組みが必要なわけですが、それが「セッション」です。
セッションを使用する際のルールは、ページの先頭に「session_start();」を記述するのみです。それで、セッション変数と呼ばれるものが使用可能になり、セッション変数の「$_SESSION[];」にデーターを格納すると、ウィンドウが閉じられるか、「session_unset();」が宣言されるまでは、そのデーターを保持し続けることができます。
*「変数」とは、プログラミングの基礎の概念で、データーを入れる「箱」のようなものと思ってもらえば大丈夫です。PHPでは、
変数は、頭に「$」をつけるのが決まりです。例えば、「$name」などです。データを受け取る「$_GET['name'];」は特殊な変数なので、そのような決まりなのだと覚えてしまいましょう。
* ちなみに、FlashのActionScriptは、変数の前に「$」はつけません。

上記は、この項の最初に組んだプログラミングを改造したものです。
最初に、セッションを使用することを宣言します。
出力は、「echo $_POST['name'];」ではなく、「echo $_SESSION['name'];」に変更しています。それは、
//セッション変数に、テキストフィールで入力されたデーターを格納
if($_POST['action']=="check"){
$_SESSION['name']=$_POST['name'];
}
の部分で、$_POST['name']で取得したデーターを$_SESSION['name']に格納しているからです。なぜわざわざ$_SESSION['name'];を使うのかよくわからないかもしれないかもしれませんが、この後の説明を読んでもらえれば納得してもらえるはずです。
入力データの空チェックも、セッション変数へのデーター格納も、すべて、送信ボタンがクリックされたら発動させたいプログラミングです。
そこで、隠しフィールド(非表示フィールド)とif文を併用することによって、「送信ボタン」がクリックされたかどうかを判定します。
隠しフィールド<input name="action" type="hidden" value="check">で、
name="action"、value="check"を飛ばし、
下記の部分(if文)、
//セッション変数に、テキストフィールで入力されたデーターを格納
if($_POST['action']=="check"){
$_SESSION['name']=$_POST['name'];
}
if文に関しての説明は、こちら。
で、 隠しフィールドで飛ばした$_POST['action']が"check"だった場合(つまり、送信ボタンがクリックされた場合)、$_SESSION['name']=$_POST['name'];を実行します。逆に考えれば、送信ボタンがクリックされなければ$_SESSION['name']=$_POST['name'];は実行されません。
これでデーターの入力からデータの確認までの基本的な流れができました。
