Как я могу ограничить свою регистрацию людьми с определенным доменом электронной почты в переполнении стека

Как я могу ограничить свою регистрацию людьми с определенным почтовым доменом в PHP

Так, например, только люди с адресом электронной почты @ amn.com могут зарегистрироваться

0

Решение

Используйте следующее регулярное выражение:

<?php
$email = "mytestemail@amn.com";
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die("Not a valid e-mail address!");
} else {
if(empty(preg_match("/@amn.com$/", $email))) {
die("E-mail must end with @amn.com!");
} else {
//valid//
}
}
?>
1

Другие решения

<?php
$email = $_POST['email'];
$domain = explode('@',$email)[1];

if($domain != 'amn.com')
{
die('This domain is not allowed to register')
}
1

На вашем сервере проверьте поле ввода почты, если оно содержит строку и заканчивается ею, например:

$email = $_POST['email'];
$domain = explode('@',$email)[1];
$emailErr = '';
$domain = explode('@',$email)[1];
if (!filter_var($email, FILTER_VALIDATE_EMAIL) || $domain != 'amn.com') {
$emailErr = "Invalid email";
} else {
//valid - use input
}

Для проверки JS вы можете использовать что-то вроде этого:

function validateEmail(email)
{
var splitted = email.match("^(.+)@thisdomainonly\.com$");
if (splitted == null) return false;
if (splitted[1] != null)
{
var regexp_user = /^\"?[\w-_\.]*\"?$/;
if (splitted[1].match(regexp_user) == null) return false;
return true;
}
return false;
}
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector