繁体   English   中英

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

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

我的表单输入中有一个名为验证码的变量。

在我的 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';

?>

我的问题是,无论我在输入中输入什么,它总是可以通过。 我怎样才能例如沙回到我的javascript包含文件 captcha_id 的值,以便我可以检查它,例如使用 javascript 中的警报?

我认为我的 php 文件是错误的,因为无论我在验证码中输入什么内容(我已经使用 alert(captcha); 在 var captcha = $("input#captcha").val();正确的值。

所以,我假设成功:......部分是错误的

或者

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 响应可用,就会调用成功的 function。 在您的情况下,它是真还是假。 因此,您应该检查:

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

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

success:function(data){
if(data=='true')
alert("OK");

else
alert("not ok");

}

您也可能需要在 ajax 调用中发送data

data:{captcha:captcha},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM