2012-04-06 13 views
5

के साथ एक वैरिएबल पास कर रहा है मैं एक हेडर लिंक के भीतर एक चर पारित करने की कोशिश कर रहा हूं। मैंने कोडPHP हेडर रीडायरेक्ट

$name = "mike"; 

if($name != "lopan"){ 
     header("Location:error-page.php?$errorMssg=Please enter information?"); 
} 

यह पृष्ठ स्थान पर रीडायरेक्ट किया गया है लेकिन संदेश वाले चर को पास नहीं करता है। लेकिन जब मैं इस तरह के मानों के साथ एक साधारण लिंक बना देता हूं:

<a href="error-page.php?$errorMssg=so what happened there buddy?">link</a> 

यह ठीक है।

कोई विचार क्या मैं गलत कर रहा हूं? या मैं हेडर के साथ जानकारी पास नहीं कर सकता?

+1

आपको यूआरएल – GordonM

उत्तर

11

आप urlencode इस तरह उपयोग करने की आवश्यकता

<?php 
$errorMssg = $_GET['errorMssg']; 
+0

लॉल्स में $ वर्ण की आवश्यकता नहीं है, क्या यह एक हेडर चीज है जहां तक ​​लिंक में "$" नहीं जोड़ रहा है ??? क्योंकि जब मैंने इसके साथ एक नियमित लिंक किया, तो यह ठीक हो गया। – somdow

+2

यूआरएल में तर्क पारित करते समय आपको किसी भी '$' की आवश्यकता नहीं है। पैरामीटर की शुरुआत को इंगित करने के लिए आपको ''' 'की आवश्यकता है, और प्रत्येक के बीच' '' ',' http: //example.com? Foo = bar और baz = baz'। इसे 'चर' से शुरू करने वाले PHP चर के साथ भ्रमित न करें। –

5

$errorMssg और urlencode संदेश से पहले $ हटाएं।

if($name != "lopan"){ 
     header("Location:error-page.php?errorMssg=".urlencode("Waoo so your not EVEN going to try to enter information huh?")); 
} 

और त्रुटि page.php में, आप इसे (urldecode करने की कोई जरूरत) मिलना चाहिए:

1

हो सकता है कि आप $errorMsg के बजाय $errorMssg है? एक वैध यूआरएल बनाने का भी प्रयास करें, उदाहरण के लिए% 20 के साथ "" प्रतिस्थापित करें, फ़ंक्शन urlencode() इससे आपकी सहायता कर सकता है।

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