Ajax - secureimage - 验证码无法正常工作

时间:2016-02-04 17:49:27

标签: javascript jquery ajax

我使用secureimage来验证验证码。我想我正在按照他们应该做的方式做事,但我可能会错过一个重点。我既不是jQuery大师,也不是AJAX大师。

我有一个表单,将数据传递给脚本以发送感谢电子邮件。在thankYou.php脚本的顶部有一个针对验证码的检查(使用secureimage)。如果我只是将表单提交给PHP,它就可以工作。 PHP可以正确地确定验证码是否正确。如果失败,我可以返回我的页面。没有问题。我想要做的是首先使用AJAX检查验证码然后如果它通过将相同的验证码提交到thankYou.php脚本,这样我就可以在不提交表单的情况下捕获失败的验证码。

如果验证码是正确的,我可以成功使用AJAX来询问PHP脚本。

我的问题是,如果我第一次进行AJAX调用并且出现故障,那么我已经完成了。如果成功,我需要将captcha发送到我的thankYou.php脚本,以便在发送电子邮件之前进行验证。对不起,我很啰嗦。我猜一个,我可以验证相同的验证码两次和两次,如果我不能有什么更好的方法来做到这一点?感谢你提出的任何建议。

问题已解决: 我不知道为什么我不直接这样做。我现在通过AXAJ将验证码发送到感谢电子邮件代码。如果验证码失败,我不发送电子邮件,我返回错误代码。如果验证码成功,我会发送电子邮件并返回适当的完成代码。傻傻的我没想到这个。

<!-- HTML CODE -->
<form action="ThankYou.php" method="post" id="thankYou">
    <img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" /><br />         
    Enter Text:<br />
    <input type="text" name="captcha_code" size="6" maxlength="6" required />
    <a href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false"></span><img src="securimage/images/refresh.png" alt="refresh the Captcha image" height=25 width=25/></a>
    <input type="button" value="submit" class="darkButton" id="contactInfo" onclick="submitTheForm()" />
</form>

/* Javascript Code */
function submitTheForm() {
    checkCaptcha(function(data) {
        if (data=="true") {
            document.getElementById("thankYou").submit();
        }
        else {
            alert("Error");
        }
    });
}

function checkCaptcha(callBack) {      
    return $.ajax({
      url: 'check_captcha.php',
      data: {cc: $( "input[name='captcha_code']" ).val()},
      dataType: "json",
      type: 'post'
    }).done(callBack)
}

/* PHP CODE */
/* thankYou.php */
<?php
session_start();
include_once $_SERVER['DOCUMENT_ROOT'] . '/ACC/securimage/securimage.php';
$securimage = new Securimage();

if ($securimage->check($_POST['captcha_code']) == false) {
   $myVariable = "";
    foreach($_POST as $key => $value){
        $myVariable = $myVariable . $key . "-" . $value . " | ";
    }
    print($myVariable);
    exit;
}

/* check_captcha.php */
<?php
session_start();
include_once $_SERVER['DOCUMENT_ROOT'] . '/ACC/securimage/securimage.php';
$securimage = new Securimage();

if ($securimage->check($_POST['cc']) == false) {
  $return = "false";
}
else {
  $return = "true";
}

die(json_encode($return));  

?>

0 个答案:

没有答案