フォームを使うと、ユーザーからのデータを送信できます。
まずは、テキストボックスを使ってみます、
テキストボックスは1行のテキストを入力できるもので、
<input>タグを使います。<input>タグは他の部品でも
使われますので、このtype属性を"text"と指定します。
<input type="text" name="名前" >
送信するためには、送信ボタンを使いします。
送信ボタンはtype属性を"submit"と指定します。
<input type="submit" name="名前" >
サンプルコードの実行結果はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> <link rel="stylesheet" href="../style.css"> </head> <body> <!-- action="送信先のURLを指定する" --> <form action="" method="post"> <input type="text" name="food" > <input type="submit" value="送信" > </form> <?php if( isset( $_POST["food"] ) ) echo "{$_POST["food"]}をお買い上げ有難うございます。<br>"; ?> </body> </html> |
ユーザーが送信ボタンを押すと<form>タグの「action」属性で指定された
宛先のページが実行されます。今回は、同じページがもう一度表示されます。
formから送信されたデータは、
$_POST["名前"]又は、$_GET["名前"]という名前の変数に格納されます。
「名前」はテキストボックスのname属性に指定した名前です。
今回は、テキストボックスに「food」という名前を付けているので、
$_POST["food"]にテキストボックスのデータが格納されます。
if( isset($_POST["food"]) )
echo "{$_POST["food"]}お買い上げ有難うございます。<br>"
isset()関数を使うと、$_POST["food"]に値が格納されている場合のみ、
if文の条件がtrueと判断されてメッセージが表示れます。
今回使用した$_POSTという配列は、
スーパーグローバル変数(super global variable)といいます。
スーパーグローバル変数は、PHPで用意されている変数です。
この変数名は予め決まっています。他にも以下のような
スーパーグローバル変数があります。
変数 | 内容 |
---|---|
$_GLOBALS | グローバル変数の情報を格納する |
$_SERVER | サーバー・クライアントに関する情報を格納する |
$_GET | GETで送信されたフォーム情報を格納する |
$_POST | POSTで送信されたフォーム情報を格納する |
$_COOKIE | クッキーの値を格納する |
$_SESSION | セッションの値を格納する |
$_FILES | ファイルのアップロード情報を格納する |
$_ENV | 環境による値を格納する |
$_REQUEST | ユーザーから入力された変数の値を格納する |
フォームから送信したデータは、
スーパーグローバル変数$_GET,$_POSTに格納される。