这是我正在使用的代码:
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
"链接到字段以获取电子邮件,但它只是不起作用。
i可以输入"测试",而不是" test@test.com
"甚至" test@test
",并且仍然验证。我还尝试了preg_match
和其他方法,但是它们都没有正确验证。
任何帮助将不胜感激。
几件事:
- 您似乎正在混合用户名和电子邮件。许多电子邮件超过32个字符。
- 您有
filter_var
如何向后工作。有效的电子邮件将使用您的代码设置$usernamevalidate=FALSE
。
您应该这样做:
if(filter_var($desired_username, FILTER_VALIDATE_EMAIL)) {
$usernamevalidate=TRUE;
} else {
$usernamevalidate=FALSE;
}