2B.2 定義済み変数による送信データの取得
PHPでは(ブラウザなどの)クライアントから送られて来るデータを定義済み変数を使って取得する事ができます。 プログラムで最よく使うのは定義済み変数は $_GET と $_POST ですが その他にもクッキーに関する情報やアップロードされたファイルの情報を取得する定義済み変数があります。
| 定義済み変数 | 説明 |
|---|---|
$_GET['name'] |
$_GETは、HTTP GETメソッドによって渡されたクエリ文字列が格納された連想配列で、 スーパーグローバルスコープを持った変数です。 ※ PHP4.10より前のバージョンでは $HTTP_GET_VARS を通して取得されていました。 |
$_POST['name'] |
$_POSTは、HTTP POSTメソッドによって渡された送信データが格納された連想配列で、 スーパーグローバルスコープを持った変数です。 ※ PHP4.10より前のバージョンでは $HTTP_POST_VARS を通して取得されていました。 |
$_FILES['name'] |
$_FILESは、HTTP POSTメソッドによってアップロードされたファイル情報が格納された連想配列で、 スーパーグローバルスコープを持った変数です。 詳細は「ファイルのアップロード」を参照して下さい。 ※ PHP4.10より前のバージョンでは $HTTP_POST_FILES を通して取得されていました。 |
$_COOKIE['name'] |
$_COOKIEは、HTTP ヘッダーに格納されたクッキーの情報が格納された連想配列で、 スーパーグローバルスコープを持った変数です。 「クッキー」を参照して下さい。 ※ PHP4.10より前のバージョンでは $HTTP_COOKIE_VARS を通して取得されていました。 |
$_REQUEST['name'] |
$_REQUESTは、環境変数($_ENV)、$_GET、$_POST、$COOKIE、サーバ変数($_SERVER)の全ての配列に含まれる変数が格納された連想配列で、 スーパーグローバルスコープを持った変数です。 $_REQUEST に含まれる変数の存在と順番は、設定ディレクティブ variables_order に基づき定義されます。 variables_order のデフォルト値は、 "EGPCS" です。 EGPCS とはそれぞれ Environment, GET, POST, Cookie, Server を表します。 例えば、variables_order を "GP" に設定すると環境変数、クッキー、サーバ変数は無視され、 GET と POSTのみを $_REQUEST で参照できるようになります。 このとき、同じ変数が GET と POST にあると POST が優先されます。 ※ PHP4.10より前のバージョンでは $_REQUEST に類する変数はありません。 |
変数名に関する注意
PHP はスクリプトに渡された変数の名前を変更しませんが、例外があります。 それは、変数にドットが含まれる場合です。ドットはアンダースコアに変換されます。
<html> <body> <form> ID <input type="text" name="user.id"> PASS <input type="text" name="user.passwd"> <input type="submit"> </form> ID: <?= $_GET['user_id'] ?><br> PASS: <?= $_GET['user_passwd'] ?><br> </body> </html>
