2011-01-22 81 views
1

由於沒有使用MINLENGTH =「」用於輸入,分鐘我怎麼能做出的聲明,如果執行以下操作:幫助的if語句 - 3個字符

如果用戶沒有輸入超過3個字符之將不會保存在數據庫中。

這裏是輸入:

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

任何想法?

+1

把javascriptand PHP驗證兩個 – 2011-01-22 06:30:05

+0

回到谷歌和閱讀如何驗證數據的客戶端和服務器端都。在將數據保存到數據庫之前,即使您不知道驗證過程是什麼,也沒有任何具體問題。我的建議是閱讀驗證數據的一些教程 – 2011-01-22 06:31:34

回答

-1

表單驗證是檢查表單字段是否填充正確格式(如果它們是進程)的過程。在你的問題中,正確的格式是「超過3個字符」。當然,如果在表單驗證過程中涉及到陳述。在客戶端,您使用JavaScript代碼來驗證表單域。

這是它是如何工作的:一個窗體有一個onsubmit事件處理程序,當用戶單擊提交或按下回車鍵時,將會觸發onsubmitonsubmit是您放置表單驗證代碼的地方。

<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引用的形式爲name d mainForm,而.inputQTY找到inputQTY字段。 您可以使用document.getElementsByTagName手動查找這些元素,但它是[時間和空間] - 用於編寫該類型的代碼。

因爲有些用戶禁用了JavaScript,或者crackers故意禁用JS來繞過驗證,所以您必須驗證服務器端。

服務器端代碼會是這樣的:

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

注:代碼從頭寫的,沒有測試

2

注:如果有輸入上的最小值限制也沒關係領域與否;用戶仍然可以欺騙表單以包含他或她想要的任何價值。因此,您需要在服務器端進行驗證。

假設您使用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?