フォームからのデータを渡す_PHP
PHPにてフォームからのデータを渡す
HTMLのformでのテキストフィールド・チェックボックス・セレクト・ラジオボタン・テキストエリアなどで入力された情報をPHPサイドで取得します。
ここでは「formtest.php」というPHPファイルを例として説明します。
<html> <head> <meta http-equiv=Content-Type content="text/html; charset=SHIFT_JIS"> </head> <form action="formtest.php" method="POST"> <input type="hidden" name="f_hVal" value="hoe" /> メッセージ:<input type="text" name="f_tVal" size=40 maxlength=40 /><br> <input type="submit" value=" OK " /> </form> <hr> <?php // フォームより読み取ったデータを取得し、画面に表示 if(isset($_POST['f_hVal'])) { $hVal = $_POST['f_hVal']; print("hVal = $hVal<br>\n"); } if(isset($POST['f_tVal'])) { $tVal = $_POST['f_tVal']; print("text = $tVal<br>\n"); } ?> <hr> </body> </html>
URL引数のデータを渡すとほぼ同じで、ボタンなどが押されたsubmitした次ページで「$HTTP_POST_VARS[f_hVal]」「$_POST['f_hVal']」にて対象となるフォーム内のアイテム(テキストフィールド、テキストエリアなど)の文字列を取得します。
<form action="formtest.php" method="POST">
としているため、$HTTP_POST_VARS[]$_POST[]の配列に入った要素を調べます(GETの場合は「$_GET」)。
「isset()」関数にて、指定のフィールドアイテムが存在するか調べています。
上記ファイルではformtest.phpファイルをブラウザに表示後、フォーム下の「OK」ボタンを押すと(submitすると)自分自身を呼び出します。このとき、
<input type="hidden" name="f_hVal" value="hoe" />
の隠し属性である「f_hVal = 'hoe'」と、テキストフィールドの
メッセージ:<input type="text" name="f_tVal" size=40 maxlength=40 /><br>
から入力データを取得します。
ただし、上記だけではある条件で文字化けすることがあります。回避策はフォームでの文字化けを参照してください。
$HTTP_POST_VARSと$_POST
以前「$HTTP_POST_VARS」にてフォームの値を取得する例を書いていたのですが、これは現在は推奨されないものだそうです。「$_POST」を使ってフォームのPOST情報を取得しています。この際、「$_POST['f_hVal']」のように、第一引数はシングルクォーテーションで囲って文字列で指定するようにします。
Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.