PHP $_REQUEST
$_REQUESTは、送信されたフォームデータとすべてのクッキーデータを含むPHPのスーパーグローバル変数です。
例
言い換えると、$_REQUESTは$_GET、$_POST、$_COOKIEからのデータを含む配列です。
フォームフィールドやクッキーの名前を指定して、次のようにこのデータにアクセスできます。
$_REQUEST['firstname']
$_POSTリクエストでの$_REQUESTの使用
POSTリクエストは通常、HTMLフォームから送信されるデータです。
次に示すHTMLフォームの例を見てください。
<html>
<body>
<form method="post" action="demo_request.php">
Name: <input type="text" name="fname">
<input type="submit">
</form>
</body>
</html>
ユーザーが送信ボタンをクリックすると、フォームデータは<form>タグのaction属性で指定されたPHPファイルに送信されます。
アクションファイルでは、$_REQUEST変数を使用して入力フィールドの値を収集できます。
$name = $_REQUEST['fname'];
echo $name;
以下の例では、HTMLフォームとPHPコードを同じPHPファイルに配置しています。
セキュリティのためにいくつかの追加行も追加しています。
例
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = htmlspecialchars($_REQUEST['fname']);
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
$_GETリクエストでの$_REQUESTの使用
GETリクエストは、上記の例のようにフォームの送信である場合もあります。HTMLの<form>要素のmethod属性がGETに設定されている場合です。
GETリクエストは、URLアドレスの後に追加されるクエリ文字列からのデータでもあります。
次に示すのは、クエリ文字列を持つHTMLハイパーリンクの例です。
<html>
<body>
<a href="demo_phpfile.php?subject=PHP&web=CodeLabJP">Test $GET</a>
</body>
</html>
ユーザーがリンクをクリックすると、クエリ文字列のデータがdemo_phpfile.phpに送信されます。
PHPファイルでは、$_REQUEST変数を使用してクエリ文字列の値を収集できます。
例
PHPファイル demo_phpfile.php:
<html>
<body>
<?php
echo "Study " . $_REQUEST['subject'] . " at " . $_REQUEST['web'];
?>
</body>
</html>