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フォームの処理時にはセキュリティに注意しましょう。

上記の例にはフォームの認証(バリデーション)などの処理はせずに、フォームデータを送信して取得する方法を示しています。

フォームデータの適切なバリデーションは、フォームをハッカーやスパムから保護するために重要です!