【发布时间】:2018-01-29 12:54:57
【问题描述】:
下面是问题的测试代码
如果给出扩展名为 .com.com 的无效电子邮件,则将其视为有效
请帮忙解决
提前致谢
<?php
if(isset($_POST['submit']))
{
function validate_email($email)
{
$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
if(eregi($exp,$email))
{
if(checkdnsrr(array_pop(explode("@",$email)),"MX"))
{
return 1;
}
else
{
return 0;
}
}
else
{
return 0;
}
}
$email = $_POST['email'];
print $details= validate_email($email);
}
?>
<form action="" method="post">
<h1> Email </h1>
<input type="email" name="email">
<button type="submit" name="submit"> SUBMIT </button>
</form>
【问题讨论】:
-
不要使用自己的电子邮件验证器。只需使用
filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)。 -
另外,
foo@bar.com.com在技术上是一个有效的电子邮件地址 - 某个地方的某个人拥有 com.com,子域是一回事。user@subdomain.domain.top-level-domain完全有效。
标签: php email email-validation