我有一个SMARTY表单,并希望将表单页面中的变量(从url / referrer设置)传递给感谢页面。所以我做了什么:
example.com/index.php?variable=blabla
$urlconv = 'example.com/thankyou.php?variable=' . $_GET["variable"];
header('Location: ' . $urlconv);
我甚至在第一页上回显$urlconv
,以确保我已经与变量一起正确构建了url。并且它正确显示。
不幸的是,重定向由于某种原因省略了变量。由于某种原因它只会example.com/thankyou.php?variable=
...
也许当我调用重定向时,变量消失了,所以我的问题是我可以以某种方式对$urlconv
中的变量进行硬编码吗?因为如果回显显示正确,然后直接省略它就意味着它只保存了变量的快捷方式,而不是字符串中的实际值,对吗?
我有非常基本的编程技巧。
谢谢!
答案 0 :(得分:0)
尝试使用urlencode
功能。除此之外,如果它在您的浏览器中,请省略example.com并尝试使用相对链接。
所以
$urlconv = '/thankyou.php?variable='.urlencode($_GET["variable"]);
我现在已经尝试过了,它确实有效。
$urlconv = '/start.php?variable='.$_GET["variable"];
header('Location: '.$urlconv);
第二个解决方案:尝试使用javascript重定向。在分配$ urlconv时也使用双引号,如$urlconv = "/thankyou.php?variable=".urlencode($_GET["variable"]);
<?php
echo "<script>location.href='".$urlconv."';</script>";
?>