Эффективной формой проверки формы на стороне пользователя является использование плагина проверки jQuery , см. Примеры правильного использования.
Примечание: пользователь ВСЕГДА может отключить JavaScript или использовать своего рода бот для отправки недействительных не проверенных данных, поэтому вам всегда нужно написать правильную проверку на стороне сервера.
Каркасы часто обеспечивают эффективный способ проверки формы, например Zend_Validator
.
Обычно готовят метод для вашего php-приложения, например:
public function validate() {
if( !isset( $_POST['name'])){
$this->field = 'name';
$this->msg = 'Invalid user name';
return false;
}
...
return true;
}
И использовать его в обоих скриптах отправки:
if( $form->validate()){
send();
}
А в проверочном скрипте:
$data = array();
if( $form->validate()){
$data['status'] = 'ok';
} else {
$data['status'] = 'failure';
$data['field'] = $form->field;
$data['msg'] = $form->msg;
}
echo json_encode( $data);
Конец, чем используйте jquery и javascript для проверки формы "на лету":
<input type="text" name="name" value="" onchange="ajaxValidate();" />
function ajaxValidate(){
// Call ajax to check script and put results
}
Если вы просто строите небольшой проект с одной формой или около того, вы можете реализовать несколько методов, таких как:
function is_post( $key); // Shorter than write isset( $_POST[ $key])
function get_post( $key, $defaultValue); // Shorter than isset( $_POST[ $key]) ? $_POST[ $key] : $default
function is_email(...);
...
И проверка JQuery:
function validateForm() {
$('.input').removeClass( 'error');
var status = true;
if( $('input[name=name]').val() == '')){
$('input[name=name]').addClass( 'error');
setMessage( 'Name cannot be empty');
status = false;
}
...
return status;
}
<form onsubmit='return validateForm();' ...>