尝试在发送到PHP表单验证之前使用javascript验证验证码

时间:2010-02-24 20:42:21

标签: php javascript

嗨,我是一个相对新手。 设置带有验证码图像生成器的邮件联系表单。 验证验证码后,在提交表单时,会执行一个php页面,进一步验证输入数据(检查垃圾邮件)。 挑战:想要在输入的capthca代码中出错并需要返回表单时保留表单数据。 如果我使用粘贴形式与形式棒好,但我不知道我如何然后将http指向php脚本进行表单数据验证。 所以我认为答案是一个javascript函数来验证验证码并保持在表单出现的同一页面内,理想情况下,如果输入的代码错误,只需要弹出一条消息(警告......),然后再将http发送到php脚本页面。
我已经看到这可以完成,但我无法使代码适应我使用的验证码(即webspamprotect.com)任何机构都可以建议一个可用于任何验证码的通用js函数吗? 对任何输入都会非常感激。 非常感谢 史蒂夫

3 个答案:

答案 0 :(得分:2)

能够在客户端上使用javascript验证CAPTCHA是没有意义的。如果您可以使用Javascript验证骗子可以使用验证功能在将它们发送到服务器之前测试他们的猜测,那么他们总是能够得到正确的答案。

您可以实现一个AJAX调用,要求服务器验证尝试,而不是要求完整页面刷新,但仍必须在服务器上进行验证。

答案 1 :(得分:0)

当生成验证码时,写入的单词通常存储在会话中或写入隐藏的输入字段,因此当表单提交回PHP脚本时,可以根据用户提供的单词进行验证。

在呈现包含表单和验证码的页面时,您可以将持有此会话变量的会话变量传递给您的JavaScript(或者从隐藏的输入中读取它)。然后,当用户单击“提交”时,拦截该呼叫并检查输入的单词是否与预期单词匹配。

至于保留值:只需将值添加到HTML表单值属性即可。如果用户提供恶意代码,请确保转义输出。

编辑:同意每个说你还需要在服务器端验证输入的人。客户端验证很容易被修改,并且只是用户的便利功能,因此他们可以在提交之前修复输入。

答案 2 :(得分:0)

只需检查" g-recaptcha-response"的值

if($('#g-recaptcha-response').val()==''){
 alert('captcha not ticked');
}else{
alert('captcha ticked');
}