Я пытаюсь передать URL-адрес в качестве параметра url в php, но когда я пытаюсь получить этот параметр, я ничего не получаю
Я использую следующую форму URL:
http://localhost/dispatch.php?link=www.google.com
Я пытаюсь это понять:
$_GET['link'];
Но ничего не вернулось. В чем проблема?
$_GET
не является конструкцией функций или языков – это просто переменная (массив). Пытаться:
<?php echo $_GET['link'];
В частности, это суперглобальная : встроенная переменная, заполненная PHP и доступная во всех областях (вы можете использовать ее изнутри функции без ключевого слова global ).
Поскольку переменная может не существовать, вы можете (и должны) обеспечить, чтобы ваш код не вызывал уведомления с:
<?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']; ?>
делай работу …
Чтобы убедиться, что вы всегда в безопасности, без использования всех видов нежелательной вставки кода используйте FILTERS:
echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);
Дополнительная информация о функции php.net filter_input или ознакомьтесь с описанием различных фильтров
Использовать это. Я выполняю это в dispatch.php.
$parameter = $_SERVER['QUERY_STRING']; echo $parameter; or Just use echo $_GET['link'];
Принятый ответ хорош. Но если у вас есть такой сценарий:
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 перенаправлял ее туда (мой обработчик 404 был тем же .php-файлом, и при тестировании я сделал опечатку в браузере).
Простое изменение имени означало, что один и тот же PHP-код работал, как только перенаправление 404 не пинали!
Таким образом, есть способы, которыми $_GET
может вернуть ничего, даже если PHP-код может быть правильным.
$Query_String = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] ); var_dump($Query_String)
Массив ([0] => link = http://www.google.com)
Кто бы ничего не получил, я думаю, что он просто должен заключить результат в теги html,
Как это:
<html> <head></head> <body> <?php echo $_GET['link']; ?> <body> </html>