【问题标题】:PHP validation class and request callback issuePHP验证类和请求回调问题
【发布时间】:2013-03-16 08:36:00
【问题描述】:

目前我使用注册表单并希望在其中查找 php 验证类实现以进行验证检查,我找到了 SchizoDuckie 提供的类 here,我的表单将使用 ajax 请求调用文件 @987654322 @,我的问题是如何使用此类来验证必填字段?如果发现无效输入并发送到浏览器并显示错误消息?

这是 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
        }
    });

});

【问题讨论】:

  • 您的 ajax 网址是 request_registraion.php。你能给我们看看那个文件吗?
  • request_registration.php 与 reg_process.php 相同,只是更正了。

标签: php ajax class validation


【解决方案1】:

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

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

如果验证失败,如果出现问题,则以 500 错误响应,并使用 error 回调捕获它。

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

另外,直接传回 javascript 可能不是一个好主意,因为您必须 eval() 它。

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 2016-05-20
    • 2013-10-06
    • 1970-01-01
    相关资源
    最近更新 更多