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>