今回は、プログラムがもつ「入力⇒記憶⇒演算⇒出力」の流れの入力について見ていきます。
この入力を担う代表的な要素は、会員登録やお問い合わせ等のフォームです。以下の入力フォームから、身長と体重を受け取り、BMI値を算出するプログラムを作成してみましょう。
<form action="result.php" method="post">
身長:<input type="text" name="height">
体重:<input type="text" name="weight">
<input type="submit" value="計算">
</form>
入力値の取得
上記の入力フォームでは、フォームのaction属性がresult.php、method属性がpostになっているので、http://●●●/result.php というURLに対し、POSTメソッドでリクエストが送られることになります(参考)。
この時、result.phpでは、入力された身長や体重(POSTパラメータ)を$_POSTという名前の配列変数で取り扱うことができます。$_POSTは連想配列として扱うことができ、キー名をinput要素のname属性値として指定することで、ユーザーが入力した値を参照できます。
<?php
// フォームに入力された身長と体重を取得
$h = $_POST["height"]; //<input name="height"> に入力された値
$w = $_POST["weight"]; //<input name="weight"> に入力された値
// BMI値を算出
$bmi = $w / ($h * $h);
echo "BMI値は{$bmi}です";
※ この$_POSTという特別な変数は、PHPであらかじめ用意されている配列変数で、スーパーグローバル変数と呼ばれています。スーパーグローバル変数には、他にも $_GET や $_SERVER などが存在します。