Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在GET values中提到的PHP网站本身就有GET values,并且相互干扰_Php_Redirect_Get_Web - Fatal编程技术网

我在GET values中提到的PHP网站本身就有GET values,并且相互干扰

我在GET values中提到的PHP网站本身就有GET values,并且相互干扰,php,redirect,get,web,Php,Redirect,Get,Web,问题是,我的网站重定向到许多其他网站。所以重定向的工作原理是这样的:用户点击链接,他们被重定向到我的网站中的另一个页面,该页面记录了点击、目标网址和不占用时间等信息,并将其放入数据库,将用户重定向到他或她的预期目的地,这个小站点非常短,用户没有注意到 但是,如果目标外部网站具有GET值,它将无法工作,因为目标网站地址本身在主页和存储数据的“中间页”之间发送时是GET值。因此,如果我的网站名为example.com,目标网站名为destination.com?articleid=12674,则看起

问题是,我的网站重定向到许多其他网站。所以重定向的工作原理是这样的:用户点击链接,他们被重定向到我的网站中的另一个页面,该页面记录了点击、目标网址和不占用时间等信息,并将其放入数据库,将用户重定向到他或她的预期目的地,这个小站点非常短,用户没有注意到

但是,如果目标外部网站具有GET值,它将无法工作,因为目标网站地址本身在主页和存储数据的“中间页”之间发送时是GET值。因此,如果我的网站名为example.com,目标网站名为
destination.com?articleid=12674
,则看起来是这样的

example.com -> example.com/middlepage?exampleget=2&websitelink=destination.com?category=whatever&articleid=12674 -> 
$_GET['websitelink'] = destination.com?category=whatever
$_GET['articleid'] = 12674
$\u GET['websitelink']
应等于
destination.com?category=whatever&articleid=12674

但是

文章id 12674应该是目的地网站的一部分,但由于它设置为获取值,我的网站只认为它是一些常规获取值,而不是目的地网站的一部分。因此,没有一个用户能够获得所需的文章


有什么好的PHP函数可以解决这个问题吗?这可以为特定的GET提供更高的优先级,或者让计算机了解如何分离这些GET值的一些其他功能?

您应该对此类情况编码或使用替换值,并在重定向发生之前将它们解码回中间页

因此,您可以将URL中的
&
替换为您自己对它们的表示(任何不易加密且易于解码的内容),或者使用它们的HTML表示


正如@bwoebi在评论中所说,这可能是最简单的方法。

您最终只想
urlencode()
查询参数参数?
$_GET['websitelink'] = destination.com?category=whatever 
$_GET['articleid'] = 12674