Проверка в форме регистрации пользователя?

Я создал модуль, в котором я пытаюсь добавить подтверждение, например, если пользователь ввел символы в тексте «Телефон Нет» и тот же на «Мобильном Нет».
Это будет работать, когда пользователь открыл регистрационную форму пользователя.
Я сделал это ….

<?php function form_intro_form_alter($form_id,&$form){ if($form_id == 'user_register' || $form_id == 'user_edit'){ $form['Personal Information']['profile_pno']['#validate'] = array('form_intro_pno_validate' => array()); //profile_pno is for Phone No. $form['Personal Information']['profile_mno']['#validate'] = array('form_intro_mno_validate' => array()); //profile_mno is for Mobile No. } } function form_intro_pno_validate($element){ if(!is_numeric($element['#value'])){ form_set_error('profile_pno' , t('Please Enter Only Number in Phone no')); } } function form_intro_mno_validate($element){ if(!is_numeric($element['#value'])){ form_set_error('profile_mno' , t('Please Enter Only Number in Mobile no')); } } ?> 

имя модуля – form_intro …..
PLZ проверить его и отправить мне повтор …
это не работает … это не дает никаких ошибок, когда пользователь вводил символы.

    Вам нужно использовать #element_validate для передачи обработчику проверки на элемент или $form['#validate'] чтобы добавить обработчик проверки в форму. Вот почему он не работает.

    РЕДАКТИРОВАТЬ:
    Другая причина, по которой это не работает для вас, заключается в том, что вы неправильно использовали крючок. Для hook hook_form_FORM_ID_alter вы должны заменить hook своим именем модуля и FROM_ID с идентификатором формы.

    Пример:

     function my_module_form_intro_form_alter(&$form, &$form_state) { $form['#validate'][] = 'my_module_form_validation_handler'; $form['title'] = array( '#type' => 'textfield', '#title' => t('Title'), '#description' => t('The title you enter here appears on the page.'), '#size' => 40, '#maxlength' => 255, `#element_validate` => array('my_module_element_validation_handler'), ); } 

    Выполняя это, функция my_module_form_validation_handler будет вызвана для всей формы, а my_module_element_validation_handler будет вызван для элемента формы title .

    Я пробовал с hook_user ..

      <?php function legalagree_user($op, &$edit, &$user, $category = NULL) { switch($op) { case 'validate': if (!is_numeric($edit['profile_mno'])) { form_set_error('profile_mno', t('You have to enter only numbers in Mobile No Field.')); } return; } } 

    Это работает …..