2010-06-10 35 views
0

(Q1)嗨,我是用我的項目的文本框,我不能接收所有類型的輸入問題MySQL的PHP​​的HTML

<textarea rows="5" cols="60"> Type your suggestion </textarea> 
<br> 
<input type="submit" name="sugestao" value="Submit" /> 

對不起,我不知道如何「殺」的值的html代碼,這就是爲什麼<丟失。

所有我從這個文本框中獲得的數據庫的列是「提交」,我想接收文本區域中寫的任何內容。我怎樣才能讓價值相等呢? (Q2)我如何確保只存儲我在數據庫中聲明的相同類型(int,varchar,text)。例如:age(int),但如果有人在輸入中鍵入「abc」,它將作爲值0存儲在我的數據庫中。我怎樣才能禁止這樣做,只有當它只是int而所有其他字段(如姓名,電子郵件)被填滿時才能保存年齡。如果仍然可以警告用戶他正在輸入錯誤的東西,不需要說出位置。

對不起,在英語的任何錯誤和感謝您的關注。

+0

Majid已回答您的第一個問題。關於第二個,你必須實現某種(服務器端)驗證。 – giolekva 2010-06-10 12:52:07

回答

3

您需要一個name屬性爲您的textarea,否則,當您提交表單時,您輸入的文本不會發送。

<form method="post" action="your_handler.php"> 
<textarea rows="5" cols="60" name="question">Type your suggestion</textarea> 
<input type="submit" name="sugestao" value="Submit" /> 
</form> 

對於第二個問題,您可以在客戶端(使用javascript),服務器端(使用任何語言)或兩者都實現輸入驗證。

對於年齡驗證,只要你想驗證兩兩件事爲例:

  1. 你有一些
  2. 它等於或大於說16

使用PHP你檢查這方式:

if((int) $_POST['age'] > 15) { 
    // insert the record 
} else { 
    // display error message 
} 
1

我認爲你在textarea中缺少name =「」屬性。如果添加它,您將在$ _POST數組中獲得它的值。對於eaxmple,name =「abc」將導致$ _POST ['abc']

對於第二個問題,您需要執行表單驗證。在Google中查找這是一項基本任務。

0

q2。你不能自動完成,但可以手動完成。
只需在表單處理程序腳本中添加驗證代碼即可。

if ($_POST['age'] < 13 or $_POST['age'] > 110) $err[] = "Wrong age value!"; 
1

如果你想保存之前檢查數據類型,你可以使用PHP內置的方法來做到這一點。有很多這種方法與PHP - is_numeric(),is_string(),is_float()等等。將數據傳遞到服務器時,POST數據最初將以字符串形式顯示,因此在運行這些方法之前,您可能必須將其轉換爲($castVar = (int)$var)