由于某些原因,我不清楚,我无法在我的网站上使用此代码:当我使用它时,php
表单无法加载。
<?php
$email = "john.doe@example.com";
$email = (filter_var($email, FILTER_SANITIZE_EMAIL));
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
这个有效,但在电子邮件中.
之后没有@
时,它不会出错,因此下面的电子邮件会得到验证
$email = "john.doe@examplecom";
$email = (filter_var($email, FILTER_SANITIZE_EMAIL));
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
如何让我的表单仅在@
.
和@
的电子邮件
编辑:
$authorEmail = (filter_var($_POST['formEmail'], FILTER_SANITIZE_EMAIL));
if (!(filter_var($authorEmail, FILTER_VALIDATE_EMAIL))){
$emailError = true;
$hasError = true;
} else{
$formEmail = $authorEmail;
};
答案 0 :(得分:1)
您不应该尝试执行太严格的验证。您的第二个示例(&#34; john.doe@examplecom" )是根据相关RFC标准(5321,5322和6531)的有效电子邮件地址。其他有效的电子邮件地址包括:
这个必须作为代码发布,因为它包含许多奇怪的字符:
#!$%&'*+-/=?^_`{}|~@example.org
最接近,您可以使用符合RFC的本土验证系统来使用一个非常复杂的正则表达式:like this one