PHP验证类和请求回调问题


PHP validation class and request callback issue

目前我的工作与注册表单,并希望查找一个php验证类实现在它的验证检查,我发现了一个类在这里提供的SchizoDuckie,我的表单将使用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
        }
    });
});

一个干净的方法是使用HTTP响应代码。

在服务器端成功时,使用200 HTTP响应码响应。你的jQuery ajax success回调将捕获这些响应,你可以对数据做你想做的事情。

如果验证失败,如果出现错误,则返回500错误,并使用error回调捕获它。

使用正确的响应代码将有助于区分好与坏。

另外,直接传递javascript可能不是一个好主意,因为你必须将其eval()