Search code examples
phphttp-headers

PHP Header Location with parameter


Is it possible to append a parameter to a PHP Header Location? I'm having trouble getting it to work. Is this syntax actually allowed?

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

it just won't replace $qry wit its actual value....why??

in the browser it ends up looking like this:

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

thanks


Solution

  • Important note: do not use this exactly if you cannot be sure that $qry is safe!

    Change the single quotes to double quotes:

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

    A single quoted string in PHP is treated as a string literal, which is not parsed for variables.

    Double quoted strings are parsed for variables, so you will get whatever $qry contains appended, instead of literally $qry.