目前我正在使用注册表单并希望在其中查找一个php验证类工具进行验证检查,我发现了一个由SchizoDuckie提供的类here,我的表单将使用ajax请求来调用文件reg_process.php
,我的问题是如何使用此类来验证必填字段?如果发现无效输入,则发送到有错误消息的浏览器?
这是reg_process.php:
<?php
include('FormValidator.php');
$email = mysql_real_escape_string(strtolower(trim($_POST['email'])));
$password = mysql_real_escape_string(trim($_POST['password']));
$rpassword = mysql_real_escape_string(trim($_POST['rpassword']));
$fname = mysql_real_escape_string($_POST['fname']);
$contact = mysql_real_escape_string($_POST['contact']);
$validations = array(
'name' => 'anything',
'email' => 'email',
'alias' => 'anything',
'pwd'=>'anything',
'gsm' => 'phone',
'birthdate' => 'date');
$required = array('name', 'email', 'alias', 'pwd');
$sanatize = array('alias');
$validator = new FormValidator($validations, $required, $sanatize);
if($validator->validate($_POST))
{
$_POST = $validator->sanatize($_POST);
// now do your saving, $_POST has been sanatized.
die($validator->getScript()."<script type='text/javascript'>alert('saved changes'); </script>");
}
else
{
die($validator->getScript());
}
?>
ajax电话:
$('#btn_reg').click(function(){
var parameters = $('#reg_form').serialize();
$.ajax({
url: 'reg_process.php',
type: 'POST',
data: parameters,
dataType: 'json',
success: function(data){
//how to get error if found invalid
}
});
});
答案 0 :(得分:0)
干净的方法是使用HTTP响应代码。
在服务器端成功时,使用200 HTTP响应代码进行响应。您的jQuery ajax 成功回调将捕获这些响应,您可以使用数据执行所需的操作。
如果验证失败,如果出现问题则回复500错误并使用错误回调捕获它。
使用正确的响应代码做出回应将有助于将好与坏分开。
此外,直接传回javascript可能不是一个好主意,因为你必须eval()
它。