Drupal表单错误重定向

时间:2013-08-18 17:19:40

标签: forms drupal drupal-7

我需要帮助解决这个问题:

在我的Drupal 7网站中,如果登录表单无效,我需要执行重定向到某个页面,仅在这种情况下,并且仅用于登录表单。 做这个的最好方式是什么?叫什么功能? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

您必须使用hook_form_alter并添加或更改#validate选项。首选第二种方法:

function MYMODULE_form_alter(&$form, $form_state, $form_id) {
 if ($form_id == 'user_login') {
  $form['#validate'][] = 'MYMODULE_user_login_form_validate';
 }
}

function MYMODULE_user_login_form_validate($form, &$form_state) {
// Do some validation here. Better take the same codes from the validation functions below.
  if (...) {
   drupal_goto('CUSTOM_PATH');
  }
}

您可以在 ROOT / modules / user / user.module 文件行2113中找到验证功能

function user_login_default_validators() {
  return array('user_login_name_validate', 'user_login_authenticate_validate', 'user_login_final_validate');
}

类似的问题:

答案 1 :(得分:0)

使用hook_user_login方法可以实现相同的目的,



    /**
     * Implements hook_user_login();
     */
    function MODULE_NAME_user_login(&$edit, $account) {
        $url = 'PAGE_TO_BE REDIRECTED';
        if (isset($user->uid) && $user->uid > 0) {
            drupal_goto($url);
        }
    }