2011-12-24 10 views
5

मुझे ठीक से एन्कोडिंग यूआरएल डेटा परेशानी हो रही है। निम्नलिखित कोड का उपयोग करना:ड्रूपल यूआरएल एन्कोडिंग

$redirect = drupal_urlencode("user/register?destination=/node/1"); 
drupal_goto($redirect); 

लेकिन, यूआरएल है कि अपने ब्राउज़र की परीक्षा में आता है निम्नलिखित है:

http://testsite.com/user/register%253Fdestination%253D/node/1 

मैं drupal_urlencode समारोह का उपयोग कर इस एन्कोडिंग मुद्दे को ठीक करना चाहिए सोचा। क्या कोई इसे ठीक करने का कोई तरीका सुझा सकता है, कृपया?

उत्तर

3

आप अपने URL बनाने के url() समारोह में बनाया गया है, अगर आप query पैरामीटर के रूप में एक सरणी पारित यह आप के लिए URL एन्कोडिंग संभालती का उपयोग कर बेहतर होगा:

$options = array(
    'absolute' => TRUE, 
    'query' => array('destination' => '/node/1') 
); 
$redirect = url('user/register', $options); 

drupal_goto($redirect); 

drupal_encode() पूरी स्ट्रिंग सांकेतिक शब्दों में बदलना होगा है कि आप इसे करने के लिए गुजरती हैं, अगर आप इसे अपने मूल तरीका क्या करना चाहते हैं यह इस प्रकार दिखाई देगा तो:

$redirect = 'user/register?' . drupal_urlencode("destination=/node/1"); 
drupal_goto($redirect);  
+0

यह पूरी तरह से सही नहीं है, के रूप में [ 'drupal_goto()'] (http://api.drupal.org/api/drupal/ शामिल हैं-common.inc/function/drupal_goto/6) पारित पैरामीटर पर 'url()' फ़ंक्शन का उपयोग करता है। क्वेरी पैरामीटर सरणी को 'drupal_goto()' के दूसरे पैरामीटर के रूप में पास करने का सही तरीका होगा। –

2

Drupal 6 में ऐसा करने का सबसे आसान तरीका है:

drupal_goto("user/register","destination=/node/1"); 
0

क्लाइव से नीचे कोड मेरे लिए काम किया ..

$options = array(
    'absolute' => TRUE, 
    'query' => array('destination' => '/node/1') 
); 
$redirect = url('user/register', $options); 

drupal_goto($redirect); 
संबंधित मुद्दे