2

Drupal 6 でパスワードのリセット フォームを作成しました。送信時に、Drupal メッセージを表示する同じページにリダイレクトする必要があります。

私は次のように書いています。

  global $language;

  $account = $form_state['values']['account'];

  _user_mail_notify('password_reset', $account, $language);


  watchdog('user', 'Password reset instructions mailed to %name at %email.', array('%name' => $account->name, '%email' => $account->mail));

  drupal_set_message(t('Further instructions have been sent to your e-mail address.'));

  $form_state['redirect'] = 'user/password';
  return;

}

私のメールコードは正常に機能していますが、私のメッセージは表示されません。

4

4 に答える 4

1
  • Garland に切り替えてみましたか (テーマに問題があるかどうかを確認するため)。
  • ユーザー テーブルに匿名用の 0 (ゼロ) エントリがあることを確認しましたか? uid フィールドの自動インクリメント設定が原因で、インポートされたテーブルがその行を見逃すことがあります。
  • メッセージは認証済み/管理者ユーザーに表示されますか?
  • あなたのスニペットは送信ハンドラーだと思いますか? $form_state参照渡しされていると思いますか?
于 2013-04-10T14:50:59.593 に答える
1

$form_state['redirect']関数を使用する代わりにdrupal_goto:

drupal_set_message(
    'Further instructions have been sent to your e-mail address.',
     'status', $repeat = FALSE);
drupal_goto('user/password');
于 2015-05-21T05:56:03.463 に答える