$ _SERVER [' REQUEST_URI']和$ _GET

时间:2014-04-15 19:11:09

标签: php

如何在包含来自最后一页的其他变量的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 ???如果是这样,有人可以告诉我怎么做?

1 个答案:

答案 0 :(得分:7)

在将urlencode()添加到网址之前,您应该使用$destination&进行编码。

基本上,您要为其中包含urldecode()的网址添加值,该网址是用于网址中其他用途的特殊字符。服务器正在看到这个角色并且缩短了价值。通过对其进行编码,您应该获得正确的值。

您可以使用{{1}}稍后将值恢复为正常状态。