0

基本的な登録を行った後、ユーザーが小さなフォームに入力する必要があるページにリダイレクトされる状況があります。

私はこのようなことを実装することhook_user_insertを目指していますhook_menu

function registration_user_insert(&$edit, $account, $category){
drupal_goto('splan/'.$edit['uid']);
}

function registration_menu() {
$items['splan/%'] = array(
'title' => 'Select a Plan',
'page callback' => 'drupal_get_form',
'page arguments' => array('selectplan_form'),
'access callback' => TRUE,
'type' => MENU_CALLBACK
);
return $items;
}

selectplan_form で新しいフォームを定義し、uid を使用してデータをユーザー テーブルに保存します。

現在、基本的なユーザー登録フォームが送信された後、splan/uid へのリダイレクトが発生していますが、次のエラーも表示されます。

You are not authorized to access this page.

今、匿名を許可するように権限を変更しました。ユーザーは Web フォームを作成および編集できますが、それでも問題は存在します。

助けてください!!!!!!!!

4

2 に答える 2

1

代わりに削除'access callback' => TRUE,して追加してみてください。'access arguments' => array('access content'),

キャッシュをクリアするのを忘れたのではないでしょうか?

于 2011-04-12T06:58:42.547 に答える
1

ユーザーが登録した後にフォームに入力する必要がありますか? もしそうなら、それはややトリッキーな状況です。いずれにせよ、drupal_goto を user_insert フックに入れると、登録プロセスが中断されます。フォームでユーザーを最初に登録する必要がない場合は、登録フォームを変更して、フォームに追加のフィールドを含める必要があります。これを行うには、hook_from_alter() を実装する必要があります。

http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_form_alter/7

于 2011-04-13T00:59:16.127 に答える