-1

这是我正在使用的代码:

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其他方法,但都没有正确验证。

任何帮助,将不胜感激。

4

1 回答 1

0

几件事:

  • 您似乎混淆了用户名和电子邮件。许多电子邮件的长度超过 32 个字符。
  • 你已经知道如何filter_var倒退。$usernamevalidate=FALSE将使用您的代码设置有效的电子邮件。

你应该这样做:

if(filter_var($desired_username, FILTER_VALIDATE_EMAIL)) {
  $usernamevalidate=TRUE;
} else {
  $usernamevalidate=FALSE;
}
于 2012-11-01T04:07:28.587 回答