这是我正在使用的代码:
if (filter_var($desired_username, FILTER_VALIDATE_EMAIL) || ((strlen($desired_username)) > 32)) {
$usernamevalidate=FALSE;
} else {
$usernamevalidate=TRUE;
}
strlen
工作正常,但filter_var或FILTER_VALIDATE_EMAIL
都不是。不要让变量名称欺骗你,“$desired_username
”链接到电子邮件的字段,但它不起作用。
我可以输入“test”而不是“test@test.com
”或甚至“test@test
”,它仍然可以验证。我也尝试了preg_match
和其他方法,但没有一种方法可以正确验证。
任何帮助都将不胜感激。
答案 0 :(得分:0)
有几件事:
filter_var
向后工作的方式。有效的电子邮件将使用您的代码设置$usernamevalidate=FALSE
。你应该这样做:
if(filter_var($desired_username, FILTER_VALIDATE_EMAIL)) {
$usernamevalidate=TRUE;
} else {
$usernamevalidate=FALSE;
}