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」と入力して送信をクリックすると、ページがエラーで更新されたときにテキストボックスに表示されます。