Можно ли добавить параметр к местоположению заголовка PHP? У меня проблемы с тем, чтобы заставить его работать. Этот синтаксис действительно разрешен?
$qry = $_SERVER['QUERY_STRING'];
header('Location: http://localhost/blast/v2/?$qry ') ;
он просто не заменит $qry его фактическим значением....почему??
в браузере это выглядит так:
http://localhost/blast/v2/?$qry
спасибо
Ответ 1 · рейтинг 18 · Bojangles
Измените одинарные кавычки на двойные:
header("Location: http://localhost/blast/v2/?$qry");
Строка с одинарными кавычками в PHP рассматривается как строковый литерал, который не анализируется на наличие переменных. Строки в двойных кавычках обрабатываются для переменных, поэтому вы получите все, что содержит $qry, а не буквально $qry.
Ответ 2 · рейтинг 2 · Howard Walker
Вы также можете добавить несколько параметров через заголовок, например:
$divert=$row['id']."¶m1=".($param1)."¶m2=".($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");