【PHP】GETメソッド($_GET)でできること

【PHP】GETメソッド($_GET)でできること

GETメソッドとは?
  • $_GETスーパーグローバル変数
  • 基本的な使用例
  • 複数のパラメータを渡す
  • 未定義のパラメータとデフォルト値
  • セキュリティ上の注意点
  • 実際のWebアプリケーションでの活用例
  • GETメソッドとは?

    GETメソッドは、HTTPリクエストの一種で、主にURLのクエリパラメータを使用してサーバーにデータを送信します。ブラウザのアドレスバーに表示されるため、ブックマークや共有が容易ですが、データがURLに含まれるため機密情報の送信には向きません。

    $_GETスーパーグローバル変数

    PHPでは、GETメソッドで送信されたデータを取得するために、スーパーグローバル変数 $_GET を使用します。この変数は連想配列として機能し、クエリパラメータのキーを指定することで対応する値を取得できます。

    基本的な使用例

    以下の例では、URLパラメータから名前を取得して表示します。

    <?php
    if (isset($_GET["name"])) {
        echo "こんにちは、" . htmlspecialchars($_GET["name"]) . "さん!";
    } else {
        echo "名前が指定されていません。";
    }
    ?>
    

    このスクリプトを example.php に保存し、次のようにアクセスすると動作します:

    http://example.com/example.php?name=太郎

    複数のパラメータを渡す

    GETメソッドでは複数のパラメータを送信できます。例えば、以下のURLで名前と年齢を送信します:

    http://example.com/example.php?name=花子&age=25

    PHPで取得するコードは次の通りです:

    <?php
    if (isset($_GET["name"]) && isset($_GET["age"])) {
        echo htmlspecialchars($_GET["name"]) . "さんは" . (int)$_GET["age"] . "歳です。";
    } else {
        echo "名前または年齢が指定されていません。";
    }
    ?>
    

    未定義のパラメータとデフォルト値

    GETパラメータが指定されない場合にデフォルト値を設定することができます。

    <?php
    $name = isset($_GET["name"]) ? htmlspecialchars($_GET["name"]) : "ゲスト";
    echo "ようこそ、" . $name . "さん!";
    ?>
    

    セキュリティ上の注意点

    • HTMLエスケープ: htmlspecialchars() を使用してXSS(クロスサイトスクリプティング)を防ぐ。
    • 型の確認: 数値の場合は (int) を使用して整数型に変換。
    • SQLインジェクション対策: データベースと連携する場合は PDO などを使用し、プリペアドステートメントを活用。

    実際のWebアプリケーションでの活用例

    例えば、ブログ記事のページでは、記事IDをGETパラメータとして受け取ります:

    <?php
    if (isset($_GET["article_id"])) {
        $article_id = (int)$_GET["article_id"];
        echo "表示する記事ID: " . $article_id;
    } else {
        echo "記事が選択されていません。";
    }
    ?>
    

    URL例:

    http://example.com/blog.php?article_id=10

    このように、GETメソッドを適切に活用すると、簡単にデータを受け渡しできるようになります。

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です