jQuery使用AJAX验证Captcha(Securimage)

时间:2014-07-13 09:29:20

标签: php jquery ajax validation captcha

我在这里已经阅读了很多问题,并尝试了几个教程,但无论如何,它仍然无法解决我尝试解决的问题。

这是我的HTML代码(/login.php)

<form action="func/login.php" method="post" name="login">                      
  User: <input type="text" name="username" />
  Password: <input type="password" name="password" id="password"/>
  <img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" />
  <input type="text" name="captcha_code" size="10" maxlength="6" />
  <a href="#" onclick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false">[ Different Image ]</a>'
  <input type="submit" value="Login" /> 
</form>

这里是我的JS(/js/forms.js)

$(document).ready(function (){
  $( "form[name='login']" ).submit(function( event ) {      
    $.ajax({
      url: '../func/check_captcha.php',
      data: {cc: $( "input[name='captcha_code']" ).val()},
      dataType: json,
      type: 'post',
      success: function(data) {
        if(data=="true") {
          return true;
        }
        if (data=="false") {
          event.preventDefault();
          return false;
        }
      }
    });
  });
});

最后是PHP(/func/check_captcha.php)

<?php

  require_once '../securimage/securimage.php';
  $securimage = new Securimage();

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

  die(json_encode($return));  

?>

任何人都可以看到任何重大错误吗?

1 个答案:

答案 0 :(得分:0)

发现问题......像往常一样,经过数小时的编程和大脑煎炸后会丢失的东西:

dataType: json,

应该是

dataType: "json",
至少到目前为止似乎解决了这个谜题