PHPでGET/POSTでフォームから送信された値を受け取る

(1/1)
HTML の GET/POST でフォームを使って何かを入力し、それを PHP プログラムに渡すことはよく行われる。
そこで今回は、GET/POST の両方で利用でき、日本語テキストも受け取ることができるユーザー関数を作ってみることにする。

サンプル・プログラム

サンプル・プログラムの解説:パラメータを取り出す

0064: /**
0065:  * 指定したパラメータを取り出す
0066:  * @param string $key  パラメータ名(省略不可)
0067:  * @param bool   $auto TRUE=自動コード変換あり/FALSE=なし(省略時:TRUE)
0068:  * @param mixed  $def  初期値(省略時:空文字)
0069:  * @return string パラメータ/NULL=パラメータ無し
0070: */
0071: function getParam($key$auto=TRUE$def='') {
0072:     if (isset($_GET[$key]))         $param = $_GET[$key];
0073:     else if (isset($_POST[$key]))   $param = $_POST[$key];
0074:     else                            $param = $def;
0075:     if ($auto)  $param = mb_convert_encoding($param, INTERNAL_ENCODING, 'auto');
0076:     return $param;
0077: }

ユーザー関数 getParam は、HTML の GET/POST でフォームから送られたデータを取得する。引数が 3 つある。

第1 引数 $key は、GET/POST フォームで送られてくるデータの要素名である。
PHP は、グローバル変数 $_GET に GET フォームで送られてくるデータを、グローバル変数 $_POST に POST フォームで送られてくるデータを格納している。これらの値を取り出すのが、関数 [#getParam:getParam] の肝の部分である。

第2 引数 $auto は、取り出したデータを文字コード変換するかどうかを指定する。TRUE で自動変換する、FALSE で自動変換しない。本プログラムの文字コードは定数 INTERNAL_ENCODING に設定しておく。
文字コード変換には、関数  mb_convert_encoding  を利用する。

第3 引数 $def は、初期値を設定する。GET/POST フォームに $key で指定された値がないとき、この初期値が返される。

第2 引数と第3 引数は省略可能である。
省略したときは、$auto は TRUE が、$def は '' が代入される。

サンプル・プログラムの解説:getParamの使い方

0115: $exec  = getParam('exec',  FALSE, '');
0116: $reset = getParam('reset', FALSE, '');
0117: $param = getParam('param', TRUE,  '');

ユーザー関数 getParam は、このようにして使う。

ここでは、送信ボタン(要素名 exec)、リセットボタン(要素名 reset)、テキスト(要素名 param)の 3 つを取り出している。
テキスト以外は文字コード変換は不要としている。

参考サイト

(この項おわり)
header