PHP - $_GET: 基礎ガイド
紹介
こんにちは、未来のPHP開発者さんたち!今日は、PHPで最もよく使われるスーパーグローバル変数の1つである$_GETについて深く掘り下げます。以前聞いたことがないとしても心配しないでください - このチュートリアルの終わりまでに、プロのように使えるようになるでしょう!
$_GETとは?
$_GETは、URLを通じて送信されたデータを収集する特別なPHP変数です。まるで魔法の封筒のように、1つのウェブページから別のウェブページに情報を運ぶ役割を果たします。友達に葉書を送ることを考えましょう - その葉書の住所がPHPの$_GETの動作に似ています。
$_GETの主要な特徴
特徴 | 説明 |
---|---|
タイプ | スーパーグローバル変数 |
目的 | URLからのデータ収集 |
アクセス性 | すべてのスコープで利用可能 |
データ形式 | 連想配列 |
セキュリティ | URLにデータが表示される |
$_GETの動作
http://example.com/page.php?name=John&age=25
のようなURLを見ると、クエリ文字列(?)の後ろにあるすべてのデータが$_GETでアクセス可能です。以下に分解します:
-
name=John
は1つのデータ -
&
は異なるデータを区切る -
age=25
は別のデータ
PHPでは、$_GET['name']および$_GET['age']を使ってこのデータにアクセスできます。
最初の$_GETの例
簡単な例から始めましょう。以下のコードでgreeting.php
というファイルを作成します:
<!DOCTYPE html>
<html>
<body>
<h1>Welcome, <?php echo $_GET['name']; ?>!</h1>
</body>
</html>
このファイルにgreeting.php?name=Sarah
のようなURLでアクセスすると、「Welcome, Sarah!」がページに表示されます。
説明
この例では、$_GET['name']を使ってURLから'name'の値を取得しています。PHPは自動的にURLを解析し、データを利用可能にします。
複数のパラメータの処理
$_GETは複数のパラメータを簡単に処理できます。例を拡張しましょう:
<!DOCTYPE html>
<html>
<body>
<h1>Welcome, <?php echo $_GET['name']; ?>!</h1>
<p>You are <?php echo $_GET['age']; ?> years old and you live in <?php echo $_GET['city']; ?>.</p>
</body>
</html>
今度はgreeting.php?name=Sarah&age=30&city=New%20York
のようなURLを使って、すべての情報を表示できます。
パラメータの存在確認
パラメータを使う前にその存在を確認することは常に良い習慣です。以下のようにします:
<!DOCTYPE html>
<html>
<body>
<?php
if(isset($_GET['name'])) {
echo "<h1>Welcome, " . $_GET['name'] . "!</h1>";
} else {
echo "<h1>Welcome, guest!</h1>";
}
?>
</body>
</html>
このコードは、$_GET配列に'name'が設定されているか確認します。設定されている場合はそれを使い、設定されていない場合はデフォルトのメッセージを表示します。
セキュリティの考慮
$_GETは非常に便利ですが、データがURLに表示されることを忘れないでください。これはパスワードのような敏感情報には適していません。$_GETデータを使う前に常に sanitize して、セキュリティ上の問題を防ぎましょう。
以下に sanitizeの例を示します:
<?php
$name = isset($_GET['name']) ? htmlspecialchars($_GET['name']) : '';
echo "Hello, " . $name;
?>
htmlspecialchars()
関数は、特殊文字をHTMLエンティティに変換し、XSS攻撃を防ぐのに役立ちます。
実用的な応用:シンプルな検索フォーム
学んだことを実践してみましょう。シンプルな検索フォームを作成します:
<!DOCTYPE html>
<html>
<body>
<form action="search.php" method="get">
<input type="text" name="query">
<input type="submit" value="Search">
</form>
<?php
if(isset($_GET['query'])) {
$query = htmlspecialchars($_GET['query']);
echo "You searched for: " . $query;
// ここで通常は、$queryを使ってデータベース検索を行います
}
?>
</body>
</html>
この例では、フォームを作成し、検索クエリが送信されると、それを表示します。実際のアプリケーションでは、このクエリを使ってデータベース検索や他の操作を行うでしょう。
結論
そして、ここまで$_GETの世界に初めて踏み込んだあなたです!練習は完璧を生みますので、これらの概念を試してみてください。間もなく、ユーザーの入力に応じて動的な、インタラクティブなウェブアプリケーションをプロのように構築できるようになるでしょう!
ハッピーコーディング、そして$_GETのリクエストが常にあなたが探しているものを返すことを祈っています!
Credits: Image by storyset