-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.com" " または" " の代わりに "test" と入力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 に答える