1

登録フォームを検証しようとしていますが、検証の 1 つが機能しません。名が 20 文字を超える場合にエラー メッセージを表示したい。コードを使用しています

} else if($_POST["mem_first_name"] >20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}

ただし、20 文字を超えて入力してもエラーは表示されません。ただし、同じコードを使用するが、このように変更すると

} else if($_POST["mem_first_name"] <20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}

それはうまくいきます、簡単な修正はありますか?

4

4 に答える 4

2
if(strlen($_POST["mem_first_name"]) > 20)
于 2013-03-17T17:00:07.183 に答える
2

strlen()関数を使用する

} else if(strlen($_POST["mem_first_name"]) >20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}
于 2013-03-17T17:00:41.253 に答える
1

strlen()文字列の長さのチェックには関数を使用する必要があります。また、マルチバイト エンコーディングのサポートが必要な場合は、使用に切り替える必要があることに注意してくださいmb_strlen()

var_dump(strlen('bär'));            // int(4) - byte length
var_dump(mb_strlen('bär', 'utf8')); // int(3) - character length
于 2013-03-17T17:16:01.087 に答える
1

文字列をカウントするためにstrlen()関数を使用するのはどうですか? 文字数を数える安定した適切な方法です IMO

} else if(strlen($_POST["mem_first_name"]) >20) {
        $errors[] = 'Sorry but your First name is limited to 20 Characters each';
}
于 2013-03-17T16:59:48.393 に答える