我有一些问题通过URL的GET参数。 当我尝试访问:
http://www.linkebuy.com.br/linkebuy/parceiro?url=http%3A%2F%2Fwww.google.com
我收到以下消息:
但是,如果我去:
http://www.linkebuy.com.br/linkebuy/parceiro?url=123
一切工作正常(它redirect到一个不存在的网站 – 当然,但它确实如此)。 通过消除,我可以说url
参数有问题,但它是什么?
OBS:我使用rawurlencode()
来编码URL。
编辑: 你问的代码…
在第一个视图中,链接是( http://www.linkebuy.com.br/notebook/detalhe?id=5 ):
<!-- url() function just completes the right URL (production or development) --> <a href="<?php echo url('linkebuy/parceiro/?url=' . rawurlencode($l->getUrl()), true) ?>" class="<?php echo $leadClass ?> oferta" target="_blank"> <?php echo $l->getNomeFantasia() ?> </a>
点击链接时,链接将redirect到一个动作( /linkebuy/parceiro
),其中会发生以下情况(基本上什么都不是,只是保留在框架中):
public function execute($request, $response) { $response->addParameter('url', rawurldecode($request->getParameter('url', ''))); //This creates $url in the view $response->setTemplate('site/linkebuy/lead-parceiro.php'); //Forwards to the view }
它包括视图, lead-parceiro.php
(上面的问题,我链接到这个页面),其中头部包含:
<script type="text/javascript"> setInterval(function(){ window.location = '<?php echo $url ?>'; },3000); </script>
如果你不能摆脱限制,你可以通过这样的2个部分传递网址
http://www.linkebuy.com.br/linkebuy/parceiro?protocol=http&url=www.google.com
然后解析它的代码,使重定向的完整url。
当您传递任何URL参数时,您应该使用urlencode