トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

フォームからのデータを渡す_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.