我目前在我的网站上有一个注册脚本,要求该电子邮件来自特定域。
因此,对于此示例,我们将说用户需要使用@ 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查询并将值输入到数据库中。
非常感谢任何帮助!
答案 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.';
}