Drupal url кодировка - PullRequest
       9

Drupal url кодировка

6 голосов
/ 24 декабря 2011

У меня проблемы с правильным кодированием данных URL. Используя следующий код:

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

но URL, который появляется в моем тесте браузера, выглядит следующим образом:

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

Я думал, что использование функции drupal_urlencode должно решить эту проблему кодирования. Кто-нибудь может предложить способ исправить это, пожалуйста?

Ответы [ 3 ]

3 голосов
/ 24 декабря 2011

Вам лучше использовать встроенную функцию 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 );     
2 голосов
/ 05 января 2012

Самый простой способ сделать это в Drupal 6:

drupal_goto("user/register","destination=/node/1");
0 голосов
/ 06 февраля 2013

У меня работает приведенный ниже код от Клайва ..

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

drupal_goto( $redirect );
...