【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メソッドを適切に活用すると、簡単にデータを受け渡しできるようになります。