如何在外部php文件中验证jQuery/AJAX输入值并返回结果


How to validate jQuery/AJAX input value in external php file and return back the result?

我有一个变量captcha从输入在我的表单。

在我的javascript文件中,我有这个:

  var captcha = $("input#captcha").val();
                    $.ajax({
                            type: "GET",
                            url: "includes/process.php",
                            data: captcha,
                            success: function() {
                              alert('Captcha is OK');
                            }
                          });

在我的process.php文件中有如下内容:

<?php
// Begin the session
session_start();
// To avoid case conflicts, make the input uppercase and check against the session value
// If it's correct, echo '1' as a string
if(strtoupper($_GET['captcha']) == $_SESSION['captcha_id'])
    echo 'true';
// Else echo '0' as a string
else
    echo 'false';
?>

我的问题是,无论我输入什么,它总是传递为OK。例如,我如何才能回到我的javascript包含文件的值captcha_id,所以我可以检查它,例如在javascript中使用警报?

我认为我的php文件是错误的,因为无论我输入我的captcha(我已经检查了它使用警报(captcha);在var captcha = $("input#captcha")之后,val();并提示正确的值

所以,我假设成功:…零件错误

process.php中的PHP比较部分。它必须返回什么才能执行ajx的成功部分?

谢谢你的建议。

解决了!至少对我来说;)

这是为我工作:

$.ajax({
                                type: "GET",
                                url: "includes/process.php",
                                data: "captcha=" + captcha,
                                success:function(data){
                                    if(data=='true')
                                    alert("OK");
                                else
                                alert("not ok");
                                }
                          });

process.php保持不变。

谢谢大家,你们帮了我很多。

我相信你的ajax调用是错误的:

data:{captcha:yourValueFromYourInput}
服务器端有$_GET['captcha']=yourValumeFromYourInput

一旦ajax响应可用,就会调用成功函数。在你的情况下,不是对就是错。所以,你应该检查:

success: function(response) {
    if (response == 'true' )
        // captcha valid
    else
        alert ('wrong');
}

您没有在成功回调中捕获来自服务器的响应

success:function(data){
if(data=='true')
alert("OK");
else
alert("not ok");
}

你也可能需要发送data在你的ajax调用

data:{captcha:captcha},