Расположение заголовка PHP с параметром

Можно ли добавить параметр к местоположению заголовка PHP? У меня проблемы с тем, чтобы заставить его работать. Этот синтаксис действительно разрешен?

$qry = $_SERVER['QUERY_STRING'];
header('Location: http://localhost/blast/v2/?$qry ') ;

он просто не заменит $qry его фактическим значением....почему??

в браузере это выглядит так:

http://localhost/blast/v2/?$qry

спасибо


person Community    schedule 25.03.2012    source источник
comment
Это фундаментальный материал, прочтите здесь: php.net/manual/en/ язык.типы.строка.php   -  person Wesley Murch    schedule 25.03.2012


Ответы (4)


Измените одинарные кавычки на двойные:

header("Location: http://localhost/blast/v2/?$qry");

Строка с одинарными кавычками в PHP рассматривается как строковый литерал, который не анализируется на наличие переменных. Строки в двойных кавычках обрабатываются для переменных, поэтому вы получите все, что содержит $qry, а не буквально $qry.

person Bojangles    schedule 25.03.2012
comment
Я пробую этот header("Location:http://example.com/file.php?id=$ID");, но header() добавляет / в конце $ID и делает его каталогом. То есть он указывает на http://example.com/file.php?id=5/ (обратите внимание на / в конце). Пожалуйста, дайте решение - person Govind Balaji; 19.10.2014
comment
Опубликуйте новый вопрос, подробно объясняющий вашу проблему. Не захватывайте комментарии к посту - person Bojangles; 19.10.2014
comment
Отличное объяснение @Bojangles. Люди, читающие это, возможно, также слышали термин интерполяция строк, что здесь и происходит. - person Scott C Wilson; 15.08.2019

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

$divert=$row['id']."&param1=".($param1)."&param2=".($param2);
header("Location:showflagsab.php?id=$divert");

который добавляет два дополнительных параметра к исходному идентификатору

Их можно извлечь с помощью метода $get по месту назначения.

person Howard Walker    schedule 22.01.2014
comment
Мистер Ховард.. Мне нужна ваша помощь в вашем коде ответа. Ваш ответ отправит одну запись, но если есть какие-то повторяющиеся записи, то как сохранить это на другой странице.? - person ; 26.08.2016

Я знаю, что это очень старый пост, но, пожалуйста, не делайте этого. Параметры в заголовке уязвимы для XSS. Вы можете прочитать больше об использовании XSS здесь: owasp.org/index.php /Межсайтовый_скриптинг_(XSS)

person Christian Wiles    schedule 24.08.2018

wiles Как исправить XSS-атаку на местоположение заголовка

$param = $_REQUEST['bcd'];
header("Location: abc.php/?id=$param");
person Vivek G.S    schedule 19.06.2019