Существует 2 решения: проверка на стороне клиента и проверка на стороне сервера:
Оба должны быть реализованы до конца дня, иначе вы не сможете провести надлежащую проверку.И вы не можете просто полагаться на проверку на стороне клиента.
Обработка на стороне клиента
Лучше сначала поставить проверку на стороне клиента.В противном случае вы попадаете на сервер с ненужными вызовами, которые, в свою очередь, могут повлиять на ваши оптимизации и производительность в долгосрочной перспективе, если не сразу.
Если вы используетеjQuery, чем на KEYUP, при вводе в строке поиска вы можете проверить, сколько символов вводится в поле поиска, длина больше или равна 5 символам, тогда только разрешено идти для запроса AJAX.
/ * Предполагая, что у вас может быть следующий вид HTML * /
<input type="text" name="filter" id="filter">
<span id="filter-error"></span> <!-- To show the filter error option, not a mandatory but useful to know the user whats causing the problem -->
Например, для реализации в jQuery
$('#filter').on('keyup', function(){
//
var searchData = $(this).val();
if(searchData == undefined || searchData.length < 5){
$('#filter-error').html("Please enter atleast 5 characters.");
return false;
}
/* Else the normal jQuery call what you want to handle her for sending the ajax request */
$.ajax({
/* Implementation */
});
});
Внедрение на стороне сервера, т.е.
PHP После отправки формы вам необходимо проверить следующую проверку.
Примечание: яне демонстрирует ничего против уязвимости безопасности
if($_SERVER['REQUEST_METHOD'] == 'POST'){ /* Check if its a post method and not get method */
$filter = trim($_POST['filter']); /* making sure to trim the spaces just to make sure user doesnt post white spaces */
(strlen($filter)) ? (return 'Please enter atlease 5 characters') : '';
/* Even you can check for some more validations like whether its having only AlphaNumeric only or not or anything which you require */
}