PHP注册脚本 - 强制特定的电子邮件域

时间:2011-12-12 22:34:24

标签: php email

我目前在我的网站上有一个注册脚本,要求该电子邮件来自特定域。

因此,对于此示例,我们将说用户需要使用@ gmail.com电子邮件进行注册。

$gmail = 'gmail.com';
$emailCheck = strpos($_POST['email'],$gmail);

然后检查以确保用户表单提交的电子邮件包含gmail.com,然后再继续。

if($emailCheck === false) {
        $err[]='Only @gmail.com email addresses are currently accepted.';
}

然后我才继续使用支票继续进行注册,以查看是否发生了任何$ err []。

if(!count($err)) {

        // INSERT IN DB, ETC. //
}

我遇到的问题是,如果用户填写user@yahoo.com,则脚本会提供错误。如果用户提供user@gmail.com,它就可以正常工作。但是,如果用户只是输入电子邮件的第一部分而忽略了@ gmail.com,它也可以运行,运行SQL查询并将值输入到数据库中。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

$input=trim($_POST['email']);
if (preg_match("/^\S+@gmail\.com$/i", $input) {

// INSERT IN DB, ETC. //

}
else {
$err[]='Only valid <your_login>@gmail.com email addresses are currently accepted.';
}
相关问题