PHPUtilプラグイン(その10・GET/POSTされた値を得る)

PHPでは、URLのパラメータや、フォームから送信された情報を、変数として扱うことができます。
PHPUtilプラグインでも、この変数を扱うことができます。

1.URLのパラメータを得る

URLに「?パラメータ名=値&パラメータ名=値・・・」のような部分を付けることで、遷移先のページにパラメータを渡すことができます。
例えば、「http://・・・/somepage.php?user=taro」というページに遷移した場合、sompage.phpには、名前が「user」で値が「taro」というパラメータが渡されます。

PHPでは、URLのパラメータを「$_GET」という連想配列(Perlで言うところのハッシュ)で扱うことができます。
上の例だと、「$_GET['user']」の値が「taro」になります。

PHPUtilプラグインでも、$_GETの値を参照することができます。
それには、MTPHPGetVar等のタグで、「name="_GET" key="パラメータ名"」と指定します。

例えば、上の例の場合、userパラメータで渡された値を出力するには、以下のようにテンプレートを書きます。

<$mt:PHPGetVar name="_GET" key="user" php_encode_html="1"$>

また、「name="_GET" key="user"」を、「name="_GET[user]"」と書いても同じ動作になります。

なお、php_encode_htmlモディファイアを指定していますが、これはクロスサイトスクリプティングを防ぐためのものです。
パラメータとして送信された値を出力する時には、必ずphp_encode_htmlモディファイアを指定します。

2.POSTされた値を得る

PHPでは、フォームからPOSTプロトコルで送信されたデータを、「$_POST」という連想配列(ハッシュ)で扱うことができます。
例えば、フォームにname属性が「user」の要素がある場合、この要素から送信された値は、「$_POST['user']」で得ることができます。

PHPUtilプラグインでも、$_POSTの値を参照することができます。
それには、MTPHPGetVar等のタグで、「name="_POST" key="パラメータ名"」と指定します。

フォームにname属性が「user」の要素があるとします。
また、このフォームはPOSTプロトコルで送信されてくるとします。
この要素から送信された値を出力する場合は、以下のようにテンプレートを書きます。
php_encode_htmlモディファイアを指定していますが、その理由はGETの場合と同じです。

<$mt:PHPGetVar name="_POST" key="user" php_encode_html="1"$>

3.PHPUtilプラグイン関係の記事の一覧

PHPUtil関係のその他の記事は、以下のリンクから参照できます。