入力に対応させよう(1) |
|
前回のプログラムでは、5つのメッセージをランダムに表示させていましたが、今回はユーザーの入力に |
対応したメッセージを表示させたいと思います。 |
では、今回はユーザーに年齢を入力させ、それに対応したメッセージを表示させてみましょう。 |
|
・フォームを使う |
ユーザーからの入力を受け付けるにはHTMLでフォームを作成します。例えばこんな感じです。
|
uranai.php |
<html>
<title>占いフォーム</title>
<body>
<form action="uranai_result.php"
method="get">
<input type="text" name="age">
<input type="submit" name="ok" value="占う">
</body>
</hrml> |
※HTMLについては、細かい説明は省略します。
|
これで
|
 |
このようなフォームができました。form
action には、遷移させたいアドレス、methodはGET方式に設定してい |
ます。GET方式とは、入力した値をパラメーターとしてURLに追加して渡すことができます。 |
 |
このように入力した値がURLに表示されます。今回は年齢というセキュリティに気を遣わなくても良い値でした |
が、パスワードなどの個人情報の場合GET方式は不適切です。注意しましょう。 |
セキュリティが重要な場合は、POST方式というものを使います。その場合、入力された値は表示されません。 |
|
今回も、POST方式にしておきましょう。 |
入力した値は$_POST["フォームのname"]という配列に格納され、遷移したページで受け取ることができます。 |
<html>
<title>占いフォーム</title>
<body>
<form action="uranai_result.php"
method="post">
<input type="text" name="age">
<input type="submit" name="ok" value="占う">
</body>
</html> |
$_GETや$_POSTは特別な変数で「スーパーグローバル変数」と呼ばれています。フォームから渡された値を |
連想配列に格納します。 |
|
・プログラムを記述 |
今回は、このような流れで作ります。 |
<ユーザーが年齢を入力>
↓
<結果表示ページへ遷移>
↓
<POSTで受け取った値の十の位を配列のキーにしてメッセージを表示> |
|
ではこれらを踏まえて、プログラムを記述していきましょう。
|
|
uranai_result.php |
<?php
//$agenoにPOSTで送られた値を10で割って正数値にして代入
$ageno = floor($_POST["age"]/10);
//$uranai配列に各メッセ―ジを格納
$uranai[1] = "10代のあなたは青がラッキーカラーです。";
$uranai[2] = "20代のあなたは赤がラッキーカラーです。";
$uranai[3] = "30代のあなたは緑がラッキーカラーです。";
$uranai[4] = "40代のあなたは黄色がラッキーカラーです。";
$uranai[5] = "50代のあなたは白がラッキーカラーです。";
//配列を表示させる
print $uranai[$ageno];
?> |
uranai.phpにアクセスして年齢を入力してみてください。対応したメッセージが表示されますね。 |
|
・floor関数
|
また新しい関数が出てきました。floor関数は引数の数値を切り捨てて返します。 |
floor(数値または変数) |
今回は年代でメッセージを分けています。ですから、年代を配列のキーに利用できますね。 |
十の位だけにするために、まず年齢を10で割ります。年齢は必ずしもキリのいい数字とは限りませんから |
余りが出るので、floor関数で余りを切り捨てているのです。 |
|
他の処理は前回と似ているので、分かりますね。$agenoに$_POST["age"]としてuranai.phpから受け取った値 |
を格納していることにだけ注意してください。 |
|
このままでも最低限の機能はありますが、もし数字以外の値がフォームに入れられたらどうすればいいか、
|
10代〜50代以外だった場合の処理はどうすればいいのか…まだ問題はありますね。
|
次は、それらに対応させていきます。
|
|
|