0

假设我有以下网址:

http://www.domain.net/?page=offsite&url=https://www.domain.com/LoanRequest/page.aspx?CUID=10414424&LOID=850&ChannelId=4078715104014180815

当我执行以下操作时:

回声($_GET[“url”]);

我得到以下信息:

https://www.domain.com/LoanRequest/page.aspx?CUID=10414424

这不是整个链接,我知道为什么 - 它假设“&”是一个新变量......

我如何获取整个链接,或者是否有某种方式需要对原始链接进行编码?

4

5 回答 5

2

你可以试试这个:

$link = $_GET['url'] . "&LOID=" . $_GET['LOID'] . "&ChannelID=" . $_GET['ChannelID'];

按照定义原始 URL 的方式,“url”只会被视为 GET 参数之一,这意味着您需要单独获取其他 GET 参数才能构建完整的 URL。更新:根据 Ben Fortune 的建议更改了 url 变量。

于 2013-09-10T15:30:47.680 回答
1

如果异地 url 的结构是不可预测的,那么我会使用$_SERVER['QUERY_STRING']字符串函数并完成我需要的东西。如果可以预测,除非您还控制链接,否则我会使用 Maxiums2012 给出的答案,然后我建议像其他人一样,在发送之前对异地 url 进行 urlencode。

于 2013-09-10T15:38:06.747 回答
0

这就是我们根据 TecBrat 的建议最终做的事情:

//get URL
$offsite_url = $_SERVER['REQUEST_URI'];

//break about URL
$offsite_url = str_replace('/?page=offsite&url=', '' , $offsite_url);

//clean input
$offsite_url = cleaninput($offsite_url);

(cleaninput 是一个消毒功能)

我认为这不是理想的解决方案(也许它是 - 接受反馈),但它似乎正在工作。urlencode 似乎是一个更好的解决方案,但这不是一个选择。

于 2013-09-11T14:02:00.357 回答
0

如果您创建原始链接,则应通过url 编码传递所有查询变量

喜欢

$q_url = 'https://www.domain.com/LoanRequest/page.aspx?CUID=10414424&LOID=850&ChannelId=4078715104014180815';

$url = 'http://www.domain.net/?page=offsite&url='.urlencode($q_url); 

然后$_GET["url"]你应该得到整个网址

于 2013-09-10T15:34:44.653 回答
0

那么你的网址不正确。

URL 基本 URL 是

http://www.domain.net/

它的参数是

page=offsite
url=https://www.domain.com/LoanRequest/page.aspx?CUID=10414424
LOID=850
ChannelId=4078715104014180815

如果您希望 LOID 和 ChannelID 与该 url= 参数相关联,则应使用 urlencode() 将其编码为

http://www.domain.net/?page=offsite&url=https://www.domain.com/LoanRequest/page.aspx?CUID=10414424&LOID=850&ChannelId=4078715104014180815
于 2013-09-10T15:34:04.380 回答