Я пытаюсь передать URL-адрес в качестве параметра URL в PHP, но когда я пытаюсь получить этот параметр, я ничего не получаю
Я использую следующую форму URL:
http://localhost/dispatch.php?link=www.google.com
Я пытаюсь пройти через это:
$_GET['link'];
Но ничего не вернулось. В чем проблема?
var_dump
из$_GET
param, он должен быть там$_REQUEST['link']
работу? Также имейте в виду, что индексный ключlink
чувствителен к регистру того, что находится в URL.$_GET
но, случается, публикуете, не так ли?Ответы:
$_GET
это не функция или языковая конструкция - это просто переменная (массив). Пытаться:В частности, это суперглобальный : встроенная переменная, которая заполняется PHP и доступна во всех областях (вы можете использовать ее внутри функции без ключевого слова global ).
Поскольку переменная может не существовать, вы можете (и должны) убедиться, что ваш код не вызывает уведомления с помощью:
В качестве альтернативы, если вы хотите пропустить проверки индекса вручную и, возможно, добавить дополнительные проверки, вы можете использовать расширение фильтра :
И последнее, но не менее важное: вы можете использовать оператор объединения нулей (доступен с PHP / 7.0 ) для обработки пропущенных параметров:
источник
localhost
и это решение не работает.http://localhost/station?type=2
echo $_GET['type'];
этоnull
parse_str(parse_url($actual_link)['query'], $params);
. Дополнительная информация stackoverflow.com/a/11480852/4458531Пожалуйста, оставьте свой код,
или
делай работу ...
источник
Чтобы быть уверенным, что вы всегда в безопасности, без всякой вставки нежелательного кода используйте FILTERS:
Больше читайте на php.net функцию filter_input или посмотрите описание различных фильтров
источник
Использовать это:
Или просто используйте:
источник
Принятый ответ хорош. Но если у вас есть такой сценарий:
Вы можете рассматривать именованный якорь как строку запроса следующим образом:
Затем получите к нему доступ так:
источник
Я ничего не получал
$_GET["..."]
(например,print_r($_GET)
дал пустой массив), но$_SERVER['REQUEST_URI']
показал, что вещи должны быть там. В конце концов оказалось, что я только зашел на веб-страницу, потому что мой .htaccess перенаправлял ее туда (мой обработчик 404 был тем же файлом .php, и я сделал опечатку в браузере при тестировании).Простое изменение имени означало, что тот же самый php-код сработал, как только не началось перенаправление 404!
Так что есть способы,
$_GET
которые ничего не могут вернуть, даже если код php может быть правильным.источник
источник
Кто бы ничего не получил обратно, я думаю, он просто должен заключить результат в HTML-теги,
Как это:
источник
Как сказал Альваро, $ _GET - это не функция, а массив, содержащий параметры. Таким образом, вы можете извлечь один элемент из этого массива, используя
Ожидаемый ОП:
источник