2011-06-01 82 views
-2

所以我創建了這個頁面,用戶可以將數據發送到msql數據庫,但是當他們將一個字段留空並且他們單擊提交時,我想要顯示一條錯誤「You留下一個空白字段「。如果有人離開字段空白時如何顯示錯誤信息

這是代碼:

<?php 
$hostname = ""; 
$db_user = ""; 
$db_password = ""; 
$database = ""; 
$db_table = ""; 


# STOP HERE 
#################################################################### 
# THIS CODE IS USED TO CONNECT TO THE MYSQL DATABASE 
$db = mysql_connect($hostname, $db_user, $db_password); 
mysql_select_db($database,$db); 
?> 
<html> 
<head> 
<title>Add your url to out database</title> 
</head> 
<body> 

<?php 
if (isset($_REQUEST['Submit'])) { 
# THIS CODE TELL MYSQL TO INSERT THE DATA FROM THE FORM INTO YOUR MYSQL TABLE 
$sql = "INSERT INTO $db_table(title,description,url,keywords) values ('".mysql_real_escape_string(stripslashes($_REQUEST['title']))."','".mysql_real_escape_string(stripslashes($_REQUEST['description']))."','".mysql_real_escape_string(stripslashes($_REQUEST['url']))."','".mysql_real_escape_string(stripslashes($_REQUEST['keywords']))."')"; 
if($result = mysql_query($sql ,$db)) { 
echo '<h1>Thank you</h1>Your information has been entered into our database<br><br>'; 
} else { 
echo "ERROR: ".mysql_error(); 
} 
} else { 
?> 
<h1><center><img src='addalink.png'><center></h1> 

<hr> 

<center> 
<form method="post" action=""> 
Name of the song:<br> 
<input type="text" name="title"><br> 
Artist: <br> 
<input type="text" name="description"><br> 
Download link: <br> 
<font color="#0000FF">http://</font><input type="text" name="url"><br> 
<input type="submit" name="Submit" value="Submit"> 
</form></br> 
<?php 

} 
?> <center> 
</body> 
</html> 
+0

有很多不同的方式來進行表單驗證。你用「jQuery」標記了你的問題,但你沒有提到它。你想要一個jQuery解決方案嗎? – Sparky 2011-06-01 04:50:37

回答

0

首先,使用CSS樣式的樣式表單的輸入。閱讀起來要容易得多,這意味着如果你將來需要改變任何東西,那就很快。

你想要做的是在提交時運行腳本,檢查所需字段中的值是否符合你的期望。

jQuery驗證插件 - http://bassistance.de/jquery-plugins/jquery-plugin-validation/照顧你想要的東西。

如果要編寫自己的程序,它是將驗證函數附加到提交按鈕的單擊事件(或表單的onSubmit事件)並檢查表單中的數據的過程。 如果數據丟失,請添加一個類以顯示此信息。如果數據有效,則刪除以前的類。

最後,只有在所有事情都通過驗證的情況下,您纔會返回true(提交表單)。

請記住,這只是客戶端,您仍然需要驗證您的數據服務器端的安全性。

0

因此,常見的回答是「在前端執行此操作」。如果您發佈的任何內容具有安全隱患,那麼我還建議您在後端檢查表單數據。

此外,如果您要通過使用mysql_real_escape的過程,您可能還會使用mysqli和參數化查詢請參閱:http://us2.php.net/manual/en/mysqli-stmt.prepare.php

如果您選擇走後端路線,尤其是在您使用AJAX作爲帖子的情況下,您可以拋出一個實際輸出500錯誤的異常以及您要顯示的訊息,然後使用Javascript處理「錯誤情況」,所以你可以提供非常好的驗證方法,仍然可以在服務器端進行驗證。

+0

要獲得適當的驗證體驗,您確實沒有選擇 - 您需要在兩端進行驗證。即時驗證對用戶來說非常有價值,但是您必須確保您的數據庫安全性,否則您不能以任何其他方式執行此操作,並且選擇不應該是「我要採用哪條路線」,而是「我首先實施哪條路線」 。 – djlumley 2011-06-01 05:09:49