2013-03-06 14 views
8

Mam problemy z przekazaniem adresów URL jako parametr GET. Przy próbie dostępu:Jak przekazać URL w URL (jako parametr GET) używając PHP?

http://www.linkebuy.com.br/linkebuy/parceiro?url=http%3A%2F%2Fwww.google.com

pojawia się następujący komunikat:

Unexpected error.

Jednakże, jeśli pójdę do:

http://www.linkebuy.com.br/linkebuy/parceiro?url=123

wszystko działa dobrze (przekierowuje do nieistniejącej strony - 123 - oczywiście, ale oczekuje). Przez eliminację mogę powiedzieć, że jest coś nie tak z parametrem url, ale co to jest?

OBS: Używam rawurlencode() do kodowania adresu URL.

EDIT:Kod pytasz ...

W pierwszym widokiem, gdzie link jest (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> 

Po kliknięciu link przekierowuje do działania (/linkebuy/parceiro), gdzie dzieje się następujące (w zasadzie nic, tylko zachowanie w ramach):

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 
} 

Obejmuje ona pogląd, lead-parceiro.php (powyżej na pytanie, odnośnik do tej strony), gdzie głowica zawiera:

<script type="text/javascript"> 
    setInterval(function(){ window.location = '<?php echo $url ?>'; },3000); 
</script> 
+0

Używaj prostego 'urlencode()' i powiedzieć nam, czy to czyni żadnej różnicy. –

+0

Nie ma żadnej różnicy. – ramonztro

+2

Problem tkwi w twojej funkcji przekierowania .... pokaż nam kod;) – Hackerman

Odpowiedz

6

Jeśli nie możesz pozbyć się ograniczeń można przekazać adres URL w 2 części takie jak ta

http://www.linkebuy.com.br/linkebuy/parceiro?protocol=http&url=www.google.com 

Następnie przeanalizuj kod, aby uzyskać pełny adres URL przekierowania.

+0

YEAH! Masz rację! Jak mogę to naprawić? Mam na myśli, naprawić konfigurację apache. – ramonztro

+0

Nie jestem pewien, prawdopodobnie jest to przepis na przepisywanie twojego kwerendy. Przejrzyj pliki .htaccess i pliki conf apache, aby je znaleźć. – Ateszki

+2

Spójrz na tę odpowiedź, ponieważ Twoja witryna jest na stronie hostgator, zaakceptowana odpowiedź musi być odpowiednia http://stackoverflow.com/questions/10992219/http-in-query-string-does-notworkworkworking – Ateszki

4

Należy użyć urlencode kiedy przechodzą coś jako parametru URL

Powiązane problemy