0

HTML に整数のみを使用する単純なテキスト ボックスがあります。正確に 6 文字である必要があります。これらの条件が満たされない場合は、適切なメッセージがユーザーに提供され、値が $_POST されることはありません。

$idLength = strlen($_POST['customerid']);

if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if(empty($_POST['customerid']))
    {
        $idErr = " *Enter ID";
    }
else if(($idLength > 0) && ($idLength < 6))
       {
       {$idnErr = " ID must be exactly 6 Digits";}
       if((!is_numeric($_POST['customerid'])))
       {$idnumErr = " ID must only be numerical values";}
       }

else if ((is_numeric($_POST['customerid']))&&($idLength = 6)) 
    {
        $id = $_POST['customerid'];
    }
echo "$id";

そのコードで、入力ボックスが空かどうかを確認します。空である場合は、ボックスの横に「*Enter ID」と表示されます。値が 0 より大きく 6 より小さい (html の最大長 = 6) かどうかを確認します。そうであれば、「ID は正確に 6 桁でなければなりません」と表示されます。また、文字が数字であるかどうかも確認します。そうでない場合は、「ID は数値のみである必要があります」と表示されます。

ユーザーが有効な ID を入力すると、その ID が変数に格納されます。例:- 123456. これはすべて正常に動作するようです。

私の問題は、12345a や ABCDE3 など、実際に使用することを意図していない正確に 6 文字を入力したときに発生します。コードはそれらを $id に保存しませんが、本来のようにエラーメッセージを表示しません。何が間違っているのか疑問に思っていました。

また、ユーザーが間違って入力した場合は、テキストボックスに入力を保存したいと考えています。例えば。ユーザーが顧客IDに「1234g」と入力して送信をクリックすると、ページがエラーで更新されたときにテキストボックスに表示されます。

4

1 に答える 1

4

ここに:

($idLength = 6)

変数に値を代入しています。6あなたがしているはずです:

($idLength == 6)

==比較演算子で、6に等しいかどうかをチェックします。

于 2014-05-05T09:21:24.723 に答える