戻る

フォームのデータを受け取る(POST)

$_POST、$HTTP_POST_VARS

HTML文のFORMタグ(<form>~</form>)およびPOSTメソッド(method="POST")で作られたHTMLフォームから送信されたデータを、同じファイルのaction属性で指定されたPHPファイルで受け取る方法は3種類あります。送信元のHTMLフォームのname属性が「username」であるフォーム部品のデータを受け取りたい場合、以下のようにします。

①スーパーグローバル変数「$_POST」を使う(例:$_POST["username"])
②グローバル変数「$HTTP_POST_VARS」を使う(例:$HTTP_POST_VARS["username"])
③送信元の部品名をそのまま使う($username)

スーパーグローバル変数とグローバル変数は、ユーザ定数の変数ではない、PHPシステムが管理している変数のことです。

php.iniファイルの「register_global」の設定値が「On」になっている環境では③のように「$username」という名前の変数に自動的に入力内容が代入されています。この変数は、通常の変数と同様に扱うことができます。しかし、「register_globals = On」の設定はセキュリティ上の問題があるため、レンタルサーバーなどでは「Off」に設定されていることがほとんどです。

<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
名前と住所を入力して「送信」ボタンをクリックしてください。
<form action="receive.php" method="POST">
名前:<input type="text" size="40" name="username"><br>
住所:<input type="text" size="40" name="useraddress"><br>
<input type="submit" value="送信">
</form>
</body>
</html>

<?php
header("Content-type: text/html; charset=utf-8");

echo "POSTで送信されたデータは<br>";
echo "名前→" . $_POST["username"] . "<br>";
echo "住所→" . $HTTP_POST_VARS["useraddress"] . "<br>";
?>

inserted by FC2 system