如何在包含来自最后一页的其他变量的URL中传递目标变量?
基本上,当我在index.php?year=2014&month=3
时,当我点击edit.php链接时,我希望它记住(index.php?year=2014&month=3
)所以它在编辑后将它还给我...我把它放了在$destination
但它与我的网址变量冲突......
SERVER['REQUEST_URI']
返回:index.php?year=2014&month=3
我的PHP代码:
$destination = $_SERVER['REQUEST_URI'];
$edit_url = "edit.php?id=$id&proj=$proj&t=$t&year=$year&month=$month&day=$day&destination=$destination";
点击编辑链接时:
http://www.site.com/edit.php?id=5&proj=3&t=1&year=2014&month=4&day=13&destination=/index.php?year=2014&month=3
一旦它转到edit.php
,我发现它没有捕获隐藏的输入&month=3
在源文件中显示:
<input type="hidden" name="destination" value="/index.php?year=2014">
它应该显示:
<input type="hidden" name="destination" value="/index.php?year=2014&month=3">
我知道这是因为导致这种情况的&
符号...是否有可能使url.php?blah=1&destination=/page.php?var=1&var=2
???如果是这样,有人可以告诉我怎么做?
答案 0 :(得分:7)
在将urlencode()
添加到网址之前,您应该使用$destination
对&
进行编码。
基本上,您要为其中包含urldecode()
的网址添加值,该网址是用于网址中其他用途的特殊字符。服务器正在看到这个角色并且缩短了价值。通过对其进行编码,您应该获得正确的值。
您可以使用{{1}}稍后将值恢复为正常状态。