当我的用户尝试注册时,我想通过检查外部身份存储库(例如调用 Web 服务或查找目录服务器)来确保他的信息有效。
任何现有模块都可以实现这一点吗?如果没有,开发此功能的最佳方法是什么?
我不知道现有模块允许添加自定义验证,但使用“验证”操作来实现这一点相当容易hook_user() http://api.drupal.org/api/function/hook_user/6:
function yourModule_user($op, &$edit, &$account, $category = NULL) {
// Are we in the validation phase of a new user registration?
if ('validate' == $op && 'user_register' == $edit['form_id'] && 'account' == $category) {
// Yes, do custom validation...
// NOTE: Just an example to validate by email.
// Check the other elements in $edit array (e.g. 'name') for more options
$mail_is_valid = yourModule_custom_mail_validation($edit['mail']);
// Is the mail address OK?
if (!$mail_is_valid) {
// No, set error on mail form field
form_set_error('mail', t('your custom error message'));
}
}
}
这将停止注册过程并重新显示注册表单,并在邮件字段中显示错误消息,只要yourModule_custom_mail_validation()
不返回 TRUE。
如果您希望对编辑其帐户的现有用户进行验证,您可以删除
&& 'user_register' == $edit['form_id']
第一个 if 子句的一部分 - 然后代码将为每个用户编辑表单提交运行,而不仅仅是在注册时运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)