FILTER_VALIDATE_EMAIL未验证

时间:2012-11-01 04:02:42

标签: php validation email

这是我正在使用的代码:

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和其他方法,但没有一种方法可以正确验证。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

有几件事:

  • 您好像在混淆用户名和电子邮件。许多电子邮件超过32个字符。
  • 你有filter_var向后工作的方式。有效的电子邮件将使用您的代码设置$usernamevalidate=FALSE

你应该这样做:

if(filter_var($desired_username, FILTER_VALIDATE_EMAIL)) {
  $usernamevalidate=TRUE;
} else {
  $usernamevalidate=FALSE;
}