drupal_set_message drupal

时间:2013-04-04 12:01:21

标签: drupal

我在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 个答案:

答案 0 :(得分:2)

尝试使用此代码,它会将您重定向到同一页面并显示消息...

$msg = "Further instructions have been sent to your e-mail address.";
drupal_set_message($msg, $type = 'status');
drupal_goto('user/password');

答案 1 :(得分:1)

  • 您是否尝试过切换回Garland(检查主题是否有问题)?
  • 您是否检查过您的用户表中有匿名的0(零)条目?由于uid字段上的自动增量设置,有时导入的表会遗漏该行。
  • 该消息是否针对经过身份验证的/管理员用户显示?
  • 我假设您的代码段是提交处理程序?我假设$form_state是通过引用传递的?

答案 2 :(得分:1)

您可以尝试使用此代码重定向到带有消息

的其他页面
drupal_set_message(t('Further instructions have been sent to your e-mail address.'));
drupal_goto('user/password');

答案 3 :(得分: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');