PHP $_GET
PHPの$_GETは、HTTP GETメソッドを介して受信した変数の配列を含んでいます。
例
HTTP GETメソッドを使用して変数を送信する主な方法は2つあります:
- URLのクエリ文字列
- HTMLフォーム
URLのクエリ文字列
クエリ文字列は、URLの末尾に追加されるデータです。以下のリンクでは、?以降がクエリ文字列の一部です:
<a href="demo_phpfile.php?subject=PHP&web=コードラボJP">Test $GET</a>
上記のクエリ文字列には、以下の2つのキー/値ペアが含まれています:
- subject=PHP
- web=コードラボJP
PHPファイルでは、$_GET変数を使用してクエリ文字列の値を収集できます。
例
PHPファイル demo_phpfile.php:
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
HTMLフォームでの$_GET
HTMLフォームは、フォームのmethod属性が「GET」に設定されている場合にHTTP GETメソッドを使用して情報を送信します。
これを示すために、まず簡単なHTMLフォームを作成します:
<html>
<body>
<form action="welcome_get.php" method="GET">
Name: <input type="text" name="name">
E-mail: <input type="text" name="email">
<input type="submit">
</form>
</body>
</html>
ユーザーが送信ボタンをクリックすると、フォームデータは<form>タグのaction属性で指定されたPHPファイルに送信されます。
フォームフィールドは、入力された内容とともに、クエリ文字列としてPHPファイルに送信されます:
welcome_get.php?name=John&email=john@example.com
アクションファイルでは、$_GET変数を使用して入力フィールドの値を収集できます。
例
welcome_get.phpページ内のPHPコード:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
PHPフォームの処理時にはセキュリティに注意しましょう。
上記の例にはフォームの認証(バリデーション)などの処理はせずに、フォームデータを送信して取得する方法を示しています。
フォームデータの適切なバリデーションは、フォームをハッカーやスパムから保護するために重要です!