6

I am having trouble properly encoding URL data. Using the following code:

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

but, the URL that comes up in my browser test is the following:

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

I thought using the drupal_urlencode function should fix this encoding issue. How can I fix it?

3 Answers 3

3

You'd be better off using the built in url() function to create your URL, if you pass an array as the query parameter it handles URL encoding for you:

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

drupal_goto( $redirect );

drupal_encode() will encode the whole string that you pass to it, so if you want to do it your original way it would look like this:

$redirect = 'user/register?' . drupal_urlencode("destination=/node/1");
drupal_goto( $redirect );     
Sign up to request clarification or add additional context in comments.

1 Comment

This is not entirely correct, as drupal_goto() uses the url() function itself on the passed in parameters. The right way would be to pass the query parameter array as the second parameter to drupal_goto().
2

The simplest way of doing this in Drupal 6 is:

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

Comments

0

The below code from Clive worked for me..

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

drupal_goto( $redirect );

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.