如何在drupal站点评估用户的电子邮件地址?

时间:2011-08-04 13:34:14

标签: drupal variables registration

我在一个小型drupal 6网站中使用通知模块,并希望能够根据用户电子邮件地址字段的值向用户发送短信或电子邮件。

我可以访问网关,所以我要做的就是在手机号码的末尾添加一个“@”和网关的地址。

所以,我想告诉顾客输入他们的手机号码或地址,但是有一个脚本可以评估该字段中的内容。基本上,如果已经有“@”(意味着他们输入了他们的电子邮件地址),则不会更改该值。但如果没有“@”且值为10位(电话号码),则自动添加“@gatewayaddress”。

我可以用preg_match找出PHP来做到这一点,但是如何在创建帐户时获取字段的值?

我找到了有关自定义用户注册的信息,但我认为我应该编写一个简单的模块来确保这样做更容易维护。

我没有使用drupal的sms框架和网关模块,因为没有发送文本消息,尝试模块的开发版本仍然不起作用,并且破坏了我的网站。此外,我使用的这个网关是免费提供给我的雇主的,最重要的是,它只是friggin'工作。

有人可以帮助我解决这个问题吗?


@nmc谢谢。我是模块开发的新手,但我真的需要这个功能。

这是我的模块的功能,它不起作用。我如何走上正确的轨道?

   function emailsmsfield_user($op,&$edit,&$account,$category = NULL) {
    //if creating an account or updating
       if($op == 'insert' || $op == 'after_update') { 
       /*checking for '@' symbol. If it is missing, the value gets the gateway address
        added to the end*/
       if(preg_match('[^@]',$user->mail[0]['value'])) {
$user->mail[0]['value'] = $user->mail[0]['value'] . 'gateway.address.com';
    }
 }  
}

2 个答案:

答案 0 :(得分:1)

这是验证电子邮件的正则表达式

答案 1 :(得分:0)

您可以使用hook_user功能检查和更改用户的电子邮件字段,以便您可以相应地进行更新。

如果您要更改表单字段以便保留它们,请务必使用form_set_value

您甚至可能有兴趣使用Drupal中内置的valid_email_address函数来检查某些内容是否是电子邮件地址。

是的,您必须将所有这些自定义放在您自己的小模块中。