我正在尝试创建一个脚本,该脚本仅在用户输入的电子邮件地址来自特定域时才会执行其操作。我创建了一个正则表达式,它在通过正则表达式实用程序进行测试时似乎可行,但是当它用于我的PHP脚本时,它告诉我有效的电子邮件无效。在这种情况下,我希望来自@ secondgearsoftware.com,@ secondgearllc.com或asia.secondgearsoftware.com的任何电子邮件回应成功,其他所有人都将被拒绝。只有在输入电子邮件来自特定域时才执行脚本
$pattern = '/\b[A-Z0-9\._%+-][email protected]((secondgearsoftware|secondgearllc|euro\.secondgearsoftware|asia\.secondgearsoftware)+\.)+com/';
$email = urldecode($_POST['email']);
if (preg_match($pattern, $email))
{
echo 'success';
}
else
{
echo 'opposite success';
}
我不太确定什么是模式。任何帮助,将不胜感激。
干净多了。谢谢!唯一的事情是你的i变量应该是$ i,不是? – 2009-11-30 21:32:37
这是错误的。这将允许任何奇怪的域名组成,即使在用户名部分。如果你想得到真正的保护,不要使用它。 – BYK 2009-11-30 22:15:37
@Justin:我的编程太多了。使用$ i ofcourse;) @BYK:如果您输入secondgearsoftware[email protected],stristr会将其全部返回,并且==比较将返回false。它返回true的唯一情况是,如果电子邮件地址的最后部分与域相同,则执行用户要求的内容。 – 2009-12-01 11:08:40