Как я могу ограничить свою регистрацию людьми с определенным почтовым доменом в PHP
Так, например, только люди с адресом электронной почты @ amn.com могут зарегистрироваться
Используйте следующее регулярное выражение:
<?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//
}
}
?>
<?php
$email = $_POST['email'];
$domain = explode('@',$email)[1];
if($domain != 'amn.com')
{
die('This domain is not allowed to register')
}
На вашем сервере проверьте поле ввода почты, если оно содержит строку и заканчивается ею, например:
$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;
}