如果有人将字段留空,如何显示错误消息

时间:2011-06-01 04:45:06

标签: php javascript jquery mysql validation

所以我创建了这个页面,用户可以将数据发送到msql数据库,但是当他们将一个字段留空并且他们点击提交时我想要一个错误显示“你把一个字段留空了”。

这是代码:

<?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> 

3 个答案:

答案 0 :(得分:0)

您需要做的就是添加javascript验证... Check this link for a simple javascript validation example

答案 1 :(得分:0)

首先,使用CSS样式设置表单输入的样式。它更容易阅读,这意味着如果您需要在将来更改任何内容,那么它很快。

您要做的是在提交时运行一个脚本,检查所需字段中的值是否符合您的预期。

jQuery Validation Plugin - http://bassistance.de/jquery-plugins/jquery-plugin-validation/负责你想要的东西。

如果您想编写自己的,那么将验证函数附加到提交按钮的click事件(或表单的onSubmit事件)并检查表单中的数据。 如果缺少数据,则添加一个类来显示此信息。如果数据有效,则删除上一个类。

最后,只有在所有内容都有效的情况下,您才会返回true(提交表单)。

请记住,这只是客户端,您仍需要验证数据服务器端的安全性。

答案 2 :(得分:0)

因此,常见的回应是“在前端做这件事”。如果您发布的任何内容都有安全隐患,那么我还建议您检查后端的表单数据。

此外,如果您要完成使用mysql_real_escape的过程,您也可以使用mysqli和参数化查询,请参阅:http://us2.php.net/manual/en/mysqli-stmt.prepare.php

如果您选择使用后端路由,特别是如果您使用AJAX作为帖子,您可以抛出一个异常,实际输出500错误以及您要显示的消息,然后使用Javascript来处理“错误案例”,因此您可以提供非常好的验证方法,仍然可以在服务器端进行验证。