Как мне оценить адрес электронной почты пользователя на сайте drupal?

Я использую модуль уведомлений на небольшом сайте drupal 6 и хочу иметь возможность отправлять пользователю sms или сообщения электронной почты в зависимости от значения поля адреса электронной почты пользователя.

У меня есть доступ к шлюзу, поэтому все, что мне нужно сделать, это добавить «@» и адрес шлюза в конце номера мобильного телефона.

Итак, я хочу предложить посетителям ввести номер своего мобильного телефона или адрес, но иметь сценарий, который оценивает, что находится в этом поле. По сути, если уже есть «@» (означает, что они ввели свой адрес электронной почты), значение не изменяется. Но если нет "@" и значение составляет 10 цифр (номер телефона), то автоматически добавляется "@gatewayaddress".

Я могу понять PHP с preg_match, чтобы сделать это, но как мне получить значение поля при создании учетной записи?

Я нашел информацию о настройке регистрации пользователей, но я думаю, что мне следует написать простой модуль, чтобы сделать это, чтобы его было легче поддерживать в будущем.

Я не использую смс-фреймворк и модули шлюза drupal, потому что текстовые сообщения не отправляются, а пробные версии модулей по-прежнему не работают и сломали мой сайт. Кроме того, этот шлюз, который я использую, доступен моему работодателю бесплатно, и, что наиболее важно, он просто чертовски работает.

Может ли кто-нибудь помочь мне понять это, чтобы начать?


@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';
    }
 }  
}

person Matt    schedule 04.08.2011    source источник
comment
Какую версию друпала вы используете?   -  person nmc    schedule 04.08.2011


Ответы (2)


Это регулярное выражение для проверки электронной почты

preg_match("/^[^@]*@[^@]*\.[^@]*$/", $email_address)
person Stoyan Bozinov    schedule 04.08.2011
comment
Фактически, это является регулярным выражением для проверки электронной почты. - person ceejayoz; 04.08.2011