マルチステップ登録(2ステップ登録)を送信した後にリダイレクトしたいと思います。また、登録の完了後にdrupal Webサイトへの自動ログ記録を禁止します。
通常の方法を試しました
$form_state['redirect'] = 'url';
しかし、それは機能しません。
次に、フォームアクションを確認しました。最初の手順を完了すると、指定したURLにも移動します。
ここにいくつかのコードをモジュールに挿入しました
function caubo_registration_form_alter(&$form, &$form_state, $form_id) {
if ($form_id != "user_register") return;
// custom codes
.....
if (isset($form_state['storage']['page']) && $form_state['storage']['page'] == 2) {
caubo_register_page_two($form, $form_state);
return;
}
if (isset($form_state['storage']['page']) && $form_state['storage']['page'] == 3) {
caubo_register_page_three($form, $form_state);
return;
}
}
Rules Module を試してメソッド here を実装しましたが、登録フォームに入力すると、ユーザーは自動的にdrupalウェブサイトにログインします、それをどのように防ぐのですか?
まず、自分のhook_form_alter()
実装で_$form_state['redirect']
_の値を変更しているモジュールよりも重みが大きいモジュールがないことを確認します。 Xdebugでステップスルーするのは、これを行うのにかなり簡単な方法です。
それが原因ではない場合、drupal_goto()
の呼び出しがプロセスのどこかで発生し、ページフローを中断しているようです。マルチステップフォームが最後のステップまで機能している場合は、独自のコードで実行することもできます。それ以外の場合は、フックの実装や、即時リダイレクトを含む可能性のあるその他のコード(別名_drupal_goto
_)がトリガーされるかどうかを確認してください。
Develはリダイレクトページを表示することもできます 、これはこれをデバッグするときに役立つ機能です。
最後に、_$_REQUEST['destination']
_がURLまたはその他の方法で設定されていないことを確認します。