2013-03-06 6 views
8

मुझे यूआरएल को जीईटी पैरामीटर के रूप में पास करने में कुछ समस्याएं आ रही हैं। मैं का उपयोग करने का प्रयास करते हैं:PHP का उपयोग कर यूआरएल (जीईटी पैरामीटर के रूप में) में यूआरएल कैसे पास करें?

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

मैं निम्न संदेश मिलता है:

Unexpected error.

हालांकि, अगर मैं के लिए जाना:

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

सब कुछ बस ठीक काम करता है (यह एक अनौपचारिक साइट पर रीडायरेक्ट करता है - 123 - ज़ाहिर है, लेकिन यह अपेक्षित है)। उन्मूलन से मैं कह सकता हूं कि url पैरामीटर के साथ कुछ गड़बड़ है, लेकिन यह क्या है?

ओबीएस: मैं URL को एन्कोड करने के लिए rawurlencode() का उपयोग कर रहा हूं।

संपादित करें:कोड के लिए कहा ...

पहला दृश्य है, जहां कड़ी है में (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> 

क्लिक किए जाने पर कड़ी एक कार्रवाई पर रीडायरेक्ट (/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> 
+0

उपयोग सरल 'urlencode()' और हमें बताया है कि यदि कोई फर्क नहीं पड़ता। –

+0

बिल्कुल कोई फर्क नहीं पड़ता। – ramonztro

+2

समस्या आपके रीडायरेक्ट फ़ंक्शन में है .... हमें कोड दिखाएं;) – Hackerman

उत्तर

6

आप प्रतिबंध छुटकारा नहीं मिल सकता है, तो आप 2 में यूआरएल पारित कर सकते हैं इस

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

और फिर रीडायरेक्ट के लिए पूर्ण यूआरएल बनाने के लिए इसे अपने कोड पर पार्स करें।

+0

YEAH पर http: // रखने की इजाजत नहीं देता है! आप सही हे! मैं यह कैसे तय कर सकता हूं? मेरा मतलब है, अपाचे कॉन्फ़िगरेशन को ठीक करें। – ramonztro

+0

मुझे यकीन नहीं है, यह शायद आपके प्रश्नस्ट्रिंग को चकित करने वाला एक पुनर्लेखन नियम है। .htaccess फ़ाइलों को देखें और apache conf फ़ाइलों को ढूंढने के लिए। – Ateszki

+2

इस उत्तर को देखें, क्योंकि आपकी साइट होस्टगेटर पर है, स्वीकृत उत्तर प्रासंगिक होना चाहिए http://stackoverflow.com/questions/10992219/http-in-query-string-does-not-work – Ateszki

4

आप urlencode का उपयोग करना चाहिए जब आप URL पैरामीटर के रूप में कुछ भी पारित

संबंधित मुद्दे

 संबंधित मुद्दे