FILTER_VALIDATE_EMAIL not validating



这是我正在使用的代码:

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;
}

最新更新