1

入力用のminlength=""がないため、次のようなifステートメントを作成するにはどうすればよいですか。

ユーザーが3文字を超えて入力していない場合、データベースには保存されません。

入力は次のとおりです。

 QTY<input title="QUANTITY PER ITEM" size="1"  name="inputQTY" value="**(minimun of 3 characters)**"/>

何か案は??

4

2 に答える 2

2

注: 入力フィールドに最小値の制限があるかどうかは問題ではありません。ユーザーはフォームを偽装して、必要な値を含めることができます。したがって、サーバー側で検証する必要があります。

サーバー側の言語として PHP を使用しているとします。

$inputQTY = $_POST['inputQTY'];
if (strlen($inputQTY) < 3) {
   // DO NOT INSERT INTO DB
}
else {
   // insert after further scrubbing input
}

これを読んでください:PHPでユーザー入力をサニタイズするための最良の方法は何ですか?

于 2011-01-22T08:48:08.103 に答える
-1

フォーム検証とは、フォーム フィールドがプロセスである場合に、フォーム フィールドが正しい形式で入力されているかどうかを確認するプロセスです。あなたの質問では、正しい形式は「3文字以上」です。もちろん、フォームの検証中に if ステートメントが含まれます。クライアント側では、JavaScript コードを使用してフォーム フィールドを検証します。

フォームにはonsubmitイベント ハンドラーがあり、ユーザーが [送信] をクリックするか、Enter キーを押すと、イベント ハンドラーonsubmitがトリガーされます。onsubmitフォーム検証コードを置く場所です。

<script>
function onsubmit() {
  if (document.forms.mainForm.inputQTY.value.length < 3) {
    alert("ERROR: Must be more than 3 characters");
    return false; // stops the form submission
  }
  return true;
}
</script>

onsubmit ハンドラを追加する方法は次のとおりです。

...

このonsubmit関数は値を返すことができます。フォームを送信できるようにする場合は true、送信を停止する場合は false です。

document.forms.mainForm.inputQTY.value.length とは何ですか? フィールドを見つけながらdocument.forms.mainForm、フォームnamedへの参照。を使用してこれらの要素を手動で見つけることができますが、そのタイプのコードを記述するには [時間とスペース] がかかります。mainForm.inputQTYinputQTYdocument.getElementsByTagName

一部のユーザーは JavaScript を無効にしているか、クラッカーが意図的に JS を無効にして検証をバイパスしているため、サーバー側で検証する必要があります。

サーバー側のコードは次のようになります。

if (strlen($_GET['inputQTY']) < 3) {
  echo "ERROR: Must be more than 3 characters";
} else {
  // submit data
}

注:コードは頭から書かれ、テストされていません

于 2011-01-22T06:53:08.777 に答える