私は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);
あなたのコードを投稿してください。
<?php
echo $_GET['link'];
?>
または
<?php
echo $_REQUEST['link'];
?>
do動作します...
あらゆる種類の不要なコードの挿入を行わずに、常に安全な側にいることを確認するには、FILTERSを使用します。
echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);
php.net関数filter_input をもっと読むか、あるいは異なるフィルターの説明をチェックアウト する
これを使って:
$parameter = $_SERVER['QUERY_STRING'];
echo $parameter;
または単に使用:
$parameter = $_GET['link'];
echo $parameter ;
受け入れられた答えは良いです。しかし、あなたがこのようなシナリオがあるならば:
http://www.mydomain.me/index.php?state=California.php#Berkeley
このように、名前付きアンカーをクエリ文字列として扱うことができます。
http://www.mydomain.me/index.php?state=California.php&city=Berkeley
次に、このようにアクセスします。
$Url = $_GET['state']."#".$_GET['city'];
私はどの$_GET["..."]
でも何も得られませんでした(例えばprint_r($_GET)
は空の配列を与えました)が、$_SERVER['REQUEST_URI']
は何かがそこにあるべきであることを示しました。結局、私の.htaccessがそこにリダイレクトしていたので、私はWebページにたどり着いているだけでした(私の404ハンドラは同じ.phpファイルで、テスト時にブラウザでタイプミスをしました)。
単純に名前を変更するということは、404リダイレクトが起動しなくなった後も同じPHPコードが機能することを意味します。
だからphpコードが正しいとしても$_GET
は何も返さない方法があります。
$Query_String = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
var_dump($Query_String)
配列([0] => link = www.google.com)
何も戻ってこない人は誰でも、結果をhtmlタグで囲まなければならないと思います、
このような:
<html>
<head></head>
<body>
<?php
echo $_GET['link'];
?>
<body>
</html>