2012-03-26 126 views
0

我使用下面的代码来访问验证码验证验证码

<img src="captcha_code_file.php?rand=<?php echo rand(); ?>" id="captchaimg" ><br /> 
<label for="message">Enter the code above here :</label> 
<input id="6_letters_code" name="6_letters_code" type="text"> 

我使用jQuery验证形式,无法验证与右图像验证码,我如何验证呢? 我有下面的代码可能是能够得到它正确

if(empty($_SESSION['6_letters_code']) || 
    strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0) 
    { 
     //Note: the captcha code is compared case insensitively. 
     //if you want case sensitive match, update the check above to 
     // strcmp() 
     $errors .= "\n The captcha code does not match!"; 
    } 

指引我请!三江源

+0

当你输入你的问题时,这个方便的**如何格式化**框在文本的右侧区。值得一读,正如文本区域上方的** [?] **按钮所提供的信息一样。 **编辑**:看起来像Kolink为你修复它,但因为这是你的第四个问题,所以在你自己正确格式化的时候就会出现。另外,我为你添加了'php'标签,因为这种**的验证必须在服务器端完成,而你的第二个代码块看起来像PHP。 – 2012-03-26 09:35:17

+0

遗憾!现在请引导我? – 2012-03-26 09:36:41

+0

你使用哪个验证插件? – ManseUK 2012-03-26 09:37:48

回答

1

您可以添加一条规则是这样的:

rules: { 
    6_letters_code: { 
     required: true, 
     remote: "process.php" 
    } 
} 

其中process.php是要使用检查CAPTCHA的PHP网址 - 所有你需要做的是返回truefalse

Details of the remote option here

你的PHP应该是这样的:

if(empty($_SESSION['6_letters_code']) || strcasecmp($_SESSION['6_letters_code'], $_GET['6_letters_code']) != 0) { 
    echo "false"; 
} else { 
    echo "true"; 
} 

看来,remote选项使用get,而不是post。有一个live example here你可以使用Firebug(或任何浏览器调试器)来查看正在发送/接收的AJAX

+0

@ManseUk ---是它的作品谢谢,但如果我错过了任何字母或错过键入它,它明确接受?我可以验证吗? – 2012-03-26 09:55:16

+0

@PujaVerma是刚刚从你的PHP返回'FALSE' - 与你的新PHP函数更新你的问题,因为它现在是 – ManseUK 2012-03-26 09:59:49

+0

@PujaVerma我已经更新了我的答案,包括一些PHP – ManseUK 2012-03-26 10:08:31