またよく使われる方法として hidden という部品を使い、ユーザーには見えないように値を渡すこともあります。
今回は復習も兼ねて、前回までに作った計算プログラムを、POST、GET、hiddenを使い改良してみます。
【1】sample007 フォルダをコピーして sample009 フォルダを作成します。
【2】calc.html と calc.php を変更します。
*「\」はWindowsではエンマークのことです。
保存先 C:\phpdev\www\test\sample009
ファイル名 calc.html
<html>
<head>
<title>calc.html</title>
</head>
<body>
<form name="form1" action="calc.php?d=40" method="post">
<input type = "text" name = "txtA"> +
<input type = "text" name = "txtB"> + C + D = ?
<input type = "hidden" name = "hidC" value = "30">
<br>
<input type="submit" value="計算">
</form>
</body>
</html>
保存先 C:\phpdev\www\test\sample009
ファイル名 calc.php
<html>
<head>
<title>calc.php</title>
</head>
<body>
<?php
$a = $_POST['txtA'];
$b = $_POST['txtB'];
$c = $_POST['hidC'];
$d = $_GET['d'];
$answer = $a + $b + $c + $d;
print ($a." + ".$b." + ".$c." + ".$d." = ".$answer."\n");
?>
</body>
</html>
*上記のプログラムはページの都合上、インデント(字下げ)が半角スペース2つになっていますが、実際には半角スペース4つにするのが好ましいです。インデントはプログラムの動作には影響しません。
【3】C:\phpdev にある 2K-NT-XP-phpdev_start.bat をダブルクリックして、phpdev を起動します。
準備ができたら作成したPHPプログラムを実行してみましょう。
【4】ブラウザのアドレスに http://localhost/test/sample009/calc.html と入力し、実行します。
【5】calc.html の画面が表示されました。
【6】テキストボックスに半角数字を入力します。
【7】「計算」ボタンをクリックします。
【8】まずブラウザのアドレスに注目してください。フォームの action で加えたURLのパラメータが表示されています。
【9】計算結果には hidden で指定した値 30 も反映されています。
【10】値をいろいろ変えて、動作を確認してください。
【解説】
■calc.html側
(1)action でパラメータを加えています。
<form name="form1" action="calc.php?d=40" method="post">
(2)hidden は画面上には表示されない部品です。ユーザが気が付かないように値を保持したい時に使います。 value は初期値を指定します。
<input type = "hidden" name = "hidC" value = "30">
■calc.php側
(1)フォームから post メソッドで送られてきた値は $_POST で、URLのパラメータは $_GET で取得しています。
$a = $_POST['txtA'];
$b = $_POST['txtB'];
$c = $_POST['hidC'];
$d = $_GET['d'];
(2)変数を使って計算し、画面に表示しています。
$answer = $a + $b + $c + $d;
print ($a." + ".$b." + ".$c." + ".$d." = ".$answer."\n");
Webのページ間は基本的につながりがないため、データの受け渡しは上記のようにいろいろ工夫が必要なわけです。
他にもセッションやクッキーを使う方法もあります。例えばユーザーのログイン情報は多くのページで使われますが、いちいちPOSTやGETで渡していたら大変です。そんな場合はセッションのほうが便利です。