как показать сообщение об ошибке, если кто-то оставил поле пустым

#php #javascript #jquery #mysql #validation

#php #javascript #jquery #mysql #проверка

Вопрос:

Итак, я создал эту страницу, где пользователь может отправлять данные в базу данных 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> 
  

Комментарии:

1. Существует так много разных способов проверки формы. Вы отметили свой вопрос «jQuery», но не упомянули об этом. Вам нужно решение на jQuery?

Ответ №1:

Прежде всего, используйте стиль CSS для оформления входных данных вашей формы. Это намного проще для чтения, и это означает, что если вам нужно что-то изменить в будущем, это быстро.

Что вы хотите сделать, это запустить скрипт при отправке, который проверяет, соответствуют ли значения в обязательных полях ожидаемым.

Плагин проверки jQuery — http://bassistance.de/jquery-plugins/jquery-plugin-validation / позаботится о том, что вы хотите.

Если вы хотите написать свое собственное, это процесс присоединения функции проверки к событию нажатия кнопки отправки (или событию onSubmit формы) и проверки данных, содержащихся в форме. Если данные отсутствуют, вы добавляете класс, чтобы показать это. Если данные верны, вы удаляете предыдущий класс.

Наконец, вы возвращаете true (для отправки формы) только в том случае, если все подтвердилось.

Имейте в виду, что это только на стороне клиента, вам все равно нужно проверить свои данные на стороне сервера для обеспечения безопасности.

Ответ №2:

Итак, обычный ответ «сделайте это во внешнем интерфейсе». Если что-либо, что вы публикуете, имеет последствия для безопасности, я бы также рекомендовал вам проверить данные вашей формы на серверной части.

Также, если вы собираетесь пройти через процесс использования mysql_real_escape, вы могли бы также использовать mysqli и параметризованные запросы, см.:http://us2.php.net/manual/en/mysqli-stmt.prepare.php .

Если вы решите пойти внутренним путем, особенно если вы используете AJAX для публикации, вы можете создать исключение, которое фактически выдает ошибку 500 вместе с сообщением, которое вы хотите отобразить, а затем использовать Javascript для обработки «случая ошибки», так что вы можете предоставить действительно хорошие методы проверки, которые все еще выполняют проверку на стороне сервера.

Комментарии:

1. Для правильной проверки у вас действительно нет выбора — вам нужно сделать это с обоих концов. Мгновенная проверка настолько ценна для пользователя, но вы должны обеспечить безопасность своей базы данных, что вы не можете сделать это каким-либо другим способом, и выбор должен быть не «какой маршрут мне выбрать», а «какой мне реализовать в первую очередь».