0

みなさん、こんにちは。html フォームに質問したいのですが、入力できるユーザー名/メールアドレスを入力する必要があります。次に、データベースにそのアカウントが存在する場合はユーザー名または電子メールで検索します。 スクリプトは機能しますが、電子メールでのみ機能します。

私の問題は、ユーザーがユーザー名または電子メールを書いていることを入力フィールドで識別する方法ですか? 現在は両方をチェックしていますが、何らかの理由で、入力されたユーザー名のみの電子メールを検出しません。

function getUserEmailExist( $input )
    {
    global $database;

        if( preg_match( '/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i', $input ) ) {
            $type = 2;
            $get = $database->checkExistRecovery( $input, $type );
        }

        if( preg_match( '/[^0-9A-Za-z]/', $input ) ) {
            $type = 1;
            $get = $database->checkExistRecovery( $input, $type );
        }

        if( $get ) {
            $this->updateRecover( $input, $type );
        } else {     
            return false;
        }
    }
4

3 に答える 3

0

2番目の正規表現を にしたいと思います/[A-Za-z0-9]+/。現在、これらの文字を含まないものを探しています。

于 2013-04-02T18:10:48.983 に答える
0

なぜそのすべての検証ロジックを気にするのですか? 実際の DB クエリは表示されませんが、次のようなことが簡単にできるようです。

SELECT * FROM users
WHERE email = ? OR username = ?

どこ ?電子メールまたはユーザー名の値になります。

于 2013-04-02T18:12:15.257 に答える