2011-01-22 8 views
1

の分何MINLENGTHがないので、=「」入力のために、どのように私は、次のないif文を作ることができます。ヘルプ - 3つの文字

、ユーザが入力しない3文字以上、それを持っている場合データベースに保存されません。ここで

は、入力された:

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

任意のアイデア?

+1

は、Googleとのデータ、クライアント側とサーバー側の両方を検証する方法を読み取るために戻って、両方の –

+0

ゴーjavascriptandのPHPの検証を置きます。データベースにデータを保存する前に、検証プロセスがわからなくても、特に問題はありません。私の提案は、データ検証のチュートリアルを読む。 –

答えて

-1

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

動作は次のとおりです。フォームにonsubmitイベントハンドラがあり、ユーザが[送信]をクリックするかEnterキーを押すとonsubmitがトリガされます。 onsubmitは、フォーム検証コードを置く場所です。提出を停止するために提出するフォーム、またはfalseをできるように、真:

<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関数は値を返すことができます。

document.forms.mainForm.inputQTY.value.lengthとは何ですか? document.forms.mainFormフォームへの参照named mainFormであり、.inputQTYinputQTYフィールドを見つける。 document.getElementsByTagNameを使用すると、これらの要素を手動で見つけることができますが、その種類のコードを書くのは時間と空間です。

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

+0

彼に用語「検証」を理解する機会を与える –

+0

なぜ投票が遅れたの? –

2

注:

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

注:

サーバー側のコードは次のようになります入力の最小値の制限があるかどうかは問題ではありませんフィールドかどうか。ユーザは依然としてフォームをスプーフィングして、自分が望むあらゆる値を含むことができます。したがって、サーバー側で検証する必要があります。

たとえば、サーバーサイド言語としてPHPを使用しているとします。

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

これを読む:What's the best method for sanitizing user input with PHP?