drupal6 представить на сайт третьей части с внутренним перенаправлением - PullRequest
0 голосов
/ 10 октября 2011

Я пытаюсь отправить PIA форму drupal 6 на сторонний сайт для обработки, но после отправки формы мне нужно перенаправить на страницу благодарности на моем собственном сайте.

Я прочитал это сообщение - Отправка формы Drupal на сторонний веб-сайт

но я не уверен, как правильно настроить перенаправление. это мой код:

$ form_state ['# action'] = 'external site.com';

$ form ['# redirect'] = 'thankyou.com';

спасибо

Ответы [ 3 ]

0 голосов
/ 18 ноября 2011

Убедитесь, что перенаправление является последним шагом. Примерно так:

function my_module_form {
  $form['#action'] = 'some.external.site';

  # Store the redirect in a value element, maybe we need some data
  # which are passed to the form, like a user ID, node ID etc.
  # So lets store the link in a value element
  $form['redirect_link'] = array(
    '#type'  => 'value',
    '#value' => url('some.redirect.page'),     
  );
}

function my_module_form_validate ($form, &$form_state) {
  # Do some validation stuff...
}

function my_module_form_submit($form, &$form_state) {
  # show some confirmation message...
  drupal_set_message(t('Successfully sent your data into space.'));

  # And finally the redirect...
  # The 'redirect_link' value was passed internally, without being sent
  # to the browser so we can safely use it.
  $form_state['redirect'] = $form_state['values']['redirect_link']
}
0 голосов
/ 03 января 2013

Поскольку я только пытаюсь отправить информацию третьему лицу, а не перенаправляю страницу после отправки формы на сторонний сайт.Я получил правильные ответы на этот неправильный вопрос.

Вот то, что я в итоге использовал, которое сработало для меня:

$url = 'http://thirdpartyurl';
$headers = array('Content-Type' => 'application/x-www-form-urlencoded');
$data = drupal_query_string_encode($pass_the_form_info);
drupal_http_request($url, $headers, 'POST', $data);
0 голосов
/ 17 октября 2011

Свойство Redirect также установлено в $ form_state.

$ form_state ['redirect'] = 'some.com';

...