Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: CommunityОтветов: 4

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

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

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

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

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

спасибо

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

phphttp-headers

Ответы

Ответ 1 · рейтинг 18 · Bojangles

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

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

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

Ответ 2 · рейтинг 2 · Howard Walker

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

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

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

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

Ответ 3 · рейтинг 2 · Christian Wiles

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

Ответ 4 · Vivek G.S

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

$param = $_REQUEST['bcd'];
header("Location: abc.php/?id=$param");

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы