$_POSTは、
POSTリクエストで送られたデータが格納される、
定義済み変数です。
連想配列型なので、文字列のキーで取り出します(参考: 連想配列とは)。
文字列のキーは、フォームのname属性で指定した値です。
$_POST
$_POSTの使い方を、以下のコードで示します。
サンプルコード
Form_Post.htmlのname=num1となっている入力欄に入れたデータと、
name=num2となっている入力欄に入れたデータは、
PHP側(Sample37.php)では、$_POST[“num1”]、$_POST[“num2”]で、それぞれ取得します。
フォームの画面
1 2 3 4 5 6 7 8 9 10 11 12 | <html> <header> <meta charset= "UTF-8" > </header> <body> <form method= "POST" action= "Sample37.php" > num1:<input type= "text" name= "num1" ><br> num2:<input type= "text" name= "num2" ><br> <input type= "submit" > </form> </body> </html> |
フォームのデータを受け取る画面
1 2 3 4 | <?php echo "num1 ⇒ " . $_POST [ "num1" ]. "<br>\n" ; echo "num2 ⇒ " . $_POST [ "num2" ]. "<br>\n" ; ?> |
実行結果
num1に111、num2に222といれると、
遷移先のSample37.phpでその結果が表示されていますね。
$_GETを使った場合と違い、遷移先のSample37.phpのurlには、パラメータがありません。(参考 $_GETの場合)
実際の使用
実際の開発では、$_POSTを直接読みとりはしません。
filter_input関数を通じて読み取ります。
実行結果は上と同じです。
1 2 3 4 5 6 7 8 9 10 11 12 | <html> <header> <meta charset= "UTF-8" > </header> <body> <form method= "POST" action= "Sample37_b.php" > num1:<input type= "text" name= "num1" ><br> num2:<input type= "text" name= "num2" ><br> <input type= "submit" > </form> </body> </html> |
1 2 3 4 | <?php echo "num1 ⇒ " .filter_input(INPUT_POST, "num1" ). "<br>\n" ; echo "num2 ⇒ " .filter_input(INPUT_POST, "num2" ). "<br>\n" ; ?> |