php регистрационная форма - ограничить количество писем - PullRequest
0 голосов
/ 15 января 2010

Я хочу ограничить определенные электронные письма на мой сайт.

Примером может быть то, что я хочу, чтобы только люди с учетными записями 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);
  }

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

Ответы [ 3 ]

1 голос
/ 15 января 2010

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

0 голосов
/ 15 января 2010

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

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

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

0 голосов
/ 15 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...