GET параметр URL в PHP

Я пытаюсь передать URL-адрес в качестве параметра url в php, но когда я пытаюсь получить этот параметр, я ничего не получаю

Я использую следующую форму URL:

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

Я пытаюсь пройти через:

$_GET['link'];

Но ничего не вернулось. В чем проблема?

Ответ 1

$_GET не является конструкцией функций или языков - это просто переменная (массив). Попробуйте:

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

В частности, это superglobal: встроенная переменная, которая заполняется PHP и доступна во всех областях (вы можете использовать это изнутри функции без глобального ключевого слова).

Поскольку переменная может не существовать, вы можете (и должны) обеспечить, чтобы ваш код не вызывал уведомления с помощью:

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

В качестве альтернативы, если вы хотите пропустить ручные проверки индекса и, возможно, добавить дополнительные проверки, вы можете использовать расширение filter:

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

Ответ 2

Пожалуйста, разместите свой код,

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

или

<?php
    echo $_REQUEST['link'];
?>

do работать...

Ответ 3

Чтобы убедиться, что вы всегда в безопасности, без использования всех видов нежелательного ввода кода используйте FILTERS:

echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);

Подробнее о php.net function filter_input или зайдите в описание различных фильтров

Ответ 4

Используйте это. Я выполняю это в dispatch.php.

$parameter = $_SERVER['QUERY_STRING'];
echo  $parameter;

or Just use
echo $_GET['link'];

Ответ 5

Принятый ответ хорош. Но если у вас есть такой сценарий:

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'];

Ответ 6

Я ничего не получал для любого $_GET["..."] (например, print_r($_GET) дал пустой массив), но $_SERVER['REQUEST_URI'] показал, что материал должен быть там. В конце концов выяснилось, что я только добирался до веб-страницы, потому что мой .htaccess перенаправлял ее туда (мой обработчик 404 был тем же .php файлом, и я делал опечатку в браузере при тестировании).

Простое изменение имени означало, что один и тот же PHP-код работал после перенаправления 404!

Итак, есть способы $_GET не могут возвращать ничего, даже если PHP-код может быть правильным.

Ответ 7

     $Query_String  = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
    var_dump($Query_String)

Массив      (       [0] = > link = www.google.com      )

Ответ 8

Кто бы ничего не получил, я думаю, что он просто должен заключить результат в теги html,

Вот так:

<html>
<head></head>
<body>
<?php
echo $_GET['link'];
?>
<body>
</html>