1. ホーム
  2. php

[解決済み】PHPのGET URLパラメータについて

2022-04-09 07:18:34

質問

phpのurlパラメータとしてURLを渡そうとしているのですが、このパラメータを取得しようとすると何も出てきません。

以下のようなURLのフォームを使用しています。

http://localhost/dispatch.php?link=www.google.com

通そうとしている。

$_GET['link'];

しかし、何も返ってきません。何が問題なのでしょうか?

解決方法は?

$_GET は関数でも言語構造でもない、ただの変数(配列)です。試してみてください。

<?php
echo $_GET['link'];

具体的には スーパーグローバル : PHP によって生成され、すべてのスコープで使用可能な組み込み変数です (関数内部から使用する場合は グローバル というキーワードがあります)。

この変数は存在しないかもしれないので、あなたのコードが通知を発生させないようにすることができます(そして、そうするべきです)。

<?php
if (isset($_GET['link'])) {
    echo $_GET['link'];
} else {
    // Fallback behaviour goes here
}

あるいは、手動でのインデックスチェックを省略し、さらに検証を加えたい場合は フィルタ という拡張機能があります。

<?php
echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL);

最後になりますが null合体演算子 (から利用可能)。 PHP/7.0 ) を使って、足りないパラメータを処理します。

echo $_GET['link'] ?? 'Fallback value';