2

現在、私は登録フォームを使用しており、検証チェックのためにそこに実装されている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
        }
    });

});
4

1 に答える 1

0

それを行うためのクリーンな方法は、HTTP応答コードを使用することです。

サーバー側で成功したら、200HTTP応答コードで応答します。jQuery ajax成功コールバックはこれらの応答をキャッチし、データを使用して必要な処理を実行できます。

検証が失敗した場合、何か問題が発生した場合は500エラーで応答し、エラーコールバックでそれをキャッチします。

正しい応答コードで応答することは、良いものと悪いものを区別するのに役立ちます。

また、JavaScriptを直接渡す必要があるため、JavaScriptを直接返すことはおそらくお勧めできませんeval()

于 2013-03-16T09:16:32.133 に答える