验证用户注册表? [英] Validation on user registration form?

查看:167
本文介绍了验证用户注册表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经制作了我正在尝试添加验证的模块,如用户已输入手机号文本中的字符,并且在移动号码上输入相同的字符。

这将在用户运行时运行已经打开了用户注册表。

我已经做了这个....

 <?php 
函数form_intro_form_alter($ form_id,& $ form){
if($ form_id =='user_register'|| $ form_id =='user_edit'){
$ form ['个人信息'] ['profile_pno'] ['#validate'] = array('form_intro_pno_validate'=> array()); // profile_pno是为电话号码
$ form ['个人信息'] ['profile_mno'] ['#validate'] = array('form_intro_mno_validate'=> array()); // profile_mno是手机号码
}
}


函数form_intro_pno_validate($ element){
if(!is_numeric($ element [' #value'])){
form_set_error('profile_pno',t('请仅在电话号码中输入号码));
}
}

函数form_intro_mno_validate($ element){
if(!is_numeric($ element ['#value'])){
form_set_error ('profile_mno',t('请仅输入手机号码));
}
}
?>

模块名称是form_intro .....

plz检查它,发送给我重播...

这不工作...当用户输入字符时它没有任何错误。

解决方案

您需要使用 #element_validate 来传递每个元素的验证处理程序或 $ form ['#validate'] 向表单添加验证处理程序。这就是为什么它不工作。



编辑:

为什么它不适合你的另一个原因是你错误地实施了钩子。对于钩子 hook_form_FORM_ID_alter ,您需要将钩子替换为您的模块名称和 FROM_ID 表单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('您在此输入的标题出现在页面上'),
'#size'=> 40,
'#maxlength'=> 255,
`#element_validate` =>数组('my_module_element_validation_handler'),
);
}

执行上述操作, my_module_form_validation_handler 将被调用整个表单,而 my_module_element_validation_handler 将被调用标题表单项。 / p>

i have made module in which i am trying to add validation like if the user had entered the characters in "Phone No" text filed and same on "Mobile No".
This will run when user had open the user registration form.
I have made this....

<?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'));
    }
}
?>

the module name is form_intro.....
plz check it and send me replay...
this isn't working...it not giving any error when user had entered the characters.

解决方案

You need to use #element_validate to pass on a validation handler per element or $form['#validate'] to add a validation handler to the form. That is why it's not working.

EDIT:
Another reason why it doesn't work for you, is that you implemented the hook wrongly. For the hook hook_form_FORM_ID_alter, you need to replace hook with your module's name and FROM_ID with the form id.

An example:

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'),
  );
}

Doing the above, the function my_module_form_validation_handler will be called for the entire form, while my_module_element_validation_handler will be called for the title form item.

这篇关于验证用户注册表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆