是否有一种简单的方法可以阻止表单的电子邮件部分中的某些域?
我不希望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'];
我如何自定义此部分?
任何帮助表示赞赏
答案 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;
}
// ...