拒绝注册表单的电子邮件域名

时间:2014-12-11 17:20:48

标签: forms

是否有一种简单的方法可以阻止表单的电子邮件部分中的某些域?

我不希望mail.ru或nokia.mail能够在我的网站上注册。

$required_fields = array('email' => $lang['your_email'],
                         'username' => $lang['username'], 
                         'pass' => $lang['password'], 
                         'confirm_pass' => $lang['confirm_pass'], 
                         'name' => $lang['your_name'],
                         );
foreach( $_POST as $key => $value) {
    $value = trim($value);
    if(array_key_exists(strtolower($key), $required_fields) && empty($value) )
        $errors[$key] = $required_fields[$key]." ".$lang['register_err_msg8'];

我如何自定义此部分?

任何帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

是的,这很简单:

只需使用以下内容:

$hostName = gethostbyaddr($_SERVER['REMOTE_IP']); 
if(strpos($hostName, "nokia.mail") !== false || strpos($hostName, "mail.ru" !== false){
 die("We do not accept registrations from that domain."; 
}

如果您获得的域数超过了阻止域数,那么您将要使用某些数组函数。

答案 1 :(得分:0)

也许是这样的

//inside of foreach loop ...

$blacklist = array("mail.ru", "nokia.mail");
$domain = explode('@', $email)[1];
if (in_array($domain, $blacklist)) {
  // anything else you wish to do
  continue;
}

// ...