How to pass URL in URL (as GET parameter) using PHP?
Solution 1
If you can't get rid of the restriction you can pass the url in 2 parts like this
http://www.linkebuy.com.br/linkebuy/parceiro?protocol=http&url=www.google.com
And then parse it on your code to make the full url for the redirect.
Solution 2
You should use urlencode
when you pass anything as URL parameter
Ramon K.
Updated on August 10, 2022Comments
-
Ramon K. over 1 year
I'm having some problems passing URL's as GET parameter. When I try to access:
http://www.linkebuy.com.br/linkebuy/parceiro?url=http%3A%2F%2Fwww.google.com
I get the following message:
However, if I go for:
http://www.linkebuy.com.br/linkebuy/parceiro?url=123
Everything works just fine (it redirects to an inexistent site - 123 -, of course, but it does the expected). By elimination I can say there's something wrong with the
url
parameter, but what is it?OBS: I'm using
rawurlencode()
to encode the URL.EDIT: Code you asked...
In the first view, where the link is (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>
When clicked the link redirects to an action (
/linkebuy/parceiro
), where happens the following (basicly nothing, just keeping in the framework):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 }
It includes the view,
lead-parceiro.php
(above on the question, I link to this page), where the head contains:<script type="text/javascript"> setInterval(function(){ window.location = '<?php echo $url ?>'; },3000); </script>
-
Ramon K. about 11 yearsYEAH! You're right! How can I get this fixed? I mean, fix the apache config.
-
Ateszki about 11 yearsI'm not sure, this is probably a rewrite rule cheking your querystring. Look at the .htaccess files and the apache conf files to find it.
-
Ateszki about 11 yearsHave a look at this answer, as your site is at hostgator, the accepted answer must be relevant stackoverflow.com/questions/10992219/…
-
Ramon K. about 11 yearsFor those who are searching for an alternative answer, you can
base64_encode
the URL andbase64_decode
it later.