2010-01-15 2 views
0

Я хочу ограничить некоторые электронные письма своим сайтом.php registration form - limit emails

примером может быть, что я только хочу, чтобы люди с GMAIL счета для регистрации на веб-сайт.

{ 
    /* Check if valid email address */ 
    $regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" 
      ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" 
      ."\.([a-z]{2,}){1}$"; 
    if(!eregi($regex,$subemail)){ 
     $form->setError($field, "* Email invalid"); 
    } 
    $subemail = stripslashes($subemail); 
    } 

Это то, что у меня есть, чтобы проверить, действительно ли его действительный адрес электронной почты.

+0

Вы получили себе вопрос программирования. Этот вопрос будет перенесен в Stack Overflow. Перейдите по ссылке и продолжите свой вопрос. Не нужно переписывать. – random

+0

Используйте функции preg_xxx вместо ereg_xxxx. ereg устарел. –

ответ

0

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

1

Не используйте один регулярное выражение для проверки всего адреса. Используйте strrpos(), чтобы разделить адрес на локальную часть и доменное имя, проверить их отдельно. Домен легко проверить, локальная часть почти невозможна (и вам не стоит даже об этом беспокоиться).

0

Как насчет делать что-то вроде:

list(,$domain) = explode('@',$email); 
if ($domain != 'gmail.com') 
    echo 'not possible to register'; 
else 
    echo 'Will register'; 

Если вы хотите проверить электронную почту с помощью функции фильтра