フォームを使ったプログラム

いままで紹介してきた例題のプログラムではデータが固定になっていて、いつも同じ結果しか返しませんでした。

実際には、データが実行のたびに変化させたいことがほとんどです。毎回、同じ結果なら2度と実行する必要性はありませんから。

PHPではフォームを使ってこのような「毎回変わるデータ」を入力するようにします。

今回の例では、さきほどの「魚検索プログラム」を拡張して、魚の名前をフォームから入力できるようにしましょう。
プログラムをわかりやすくするため、3つのファイルになります。

fish_data.php
<?php

$fish[0] = 'クロダイ';
$fish[1] = 'ブラックバス';
$fish[2] = 'アイナメ';
$fish[3] = 'メバル';
$fish[4] = 'マダイ';
$fish[5] = 'メジナ';
$fish[6] = 'イシダイ';

?>
input.html
<html>
<body>
<form method=post action="search.php">

<p align=center>
	魚の名前を入力してください
	<input type=text name=gyosyu>
	<input type=submit value="検索">
</p>

</form>
</body>
</html>
search.php
<html>
<body>

<?php

require('fish_data.php');  // 魚データの読込み

/////////////////////////////////////////////////////
// FishSearch()関数
// 魚データの中に該当する魚があるかをチェックします。
// もしも、魚データに定義されていたら1を返す。
// 定義されていなければ0を返す。
//
function FishSearch($fish_name) {
	// グローバル変数$fishを定義しています。
	// この関数内部で$fishを参照すると、
	// グローバル変数の配列$fishを参照するようになります。
	global $fish;

	for ($i = 0; $i < count($fish); $i++) {
		if ($fish[$i] == $fish_name)
			return 1;
	}
	return 0;
}

/////// ここからメイン・ルーチン ///////
if (FishSearch($_POST['gyosyu']) == 1)
	echo "<p>$strは魚です。</p>\n";
else
	echo "<p>$strは魚ではありません。</p>\n";
?>

<p><a href="input.html">入力画面に戻る</a></p>

</body>
</html>

フォームで送られたデータは method が「post」のときは「$_POST['変数名']」に代入されます。methodが「get」ときは「$_GET['変数名']に代入されます。
代入される変数名は「<input name=」で指定した名前となります。
上記プログラムでもここが両方とも「 gyosyu 」になっています。

戻る

Copyright©2001-2019 釣ったよ! All Right Reserved.    sg@tsuttayo.jpn.org