2010-02-24 127 views
0

嗨,我是一个相对的新手。 有一个与验证码图片生成器一起设置的邮件联系表。 验证完验证码后,在提交表单时,会启动一个php页面,以进一步验证输入数据(检查垃圾邮件)。 挑战:想要保留表格数据,以防输入的capthca代码出错并需要返回表格。 如果我使用粘滞形式的表单粘贴好,但我不明白我是如何直接http的PHP脚本进行表单数据验证。 所以我认为答案是一个JavaScript函数来验证验证码,并保持在窗体出现的相同页面,理想情况下,只要有一个弹出消息(警报...),如果enterred代码是错误的,在发送http PHP脚本页面。
我已经看到,这可以完成,但我不能调整代码到我使用的验证码(即webspamprotect.com)任何机构可以提供一个通用的js函数可用于任何验证码? 对任何输入都会非常感激。 许多感谢 史蒂夫在发送到php表单验证之前试图验证captcha与JavaScript之前

回答

0

当生成验证码的写入字通常被存储在会话内或写入到一个隐藏的输入字段,所以它可以对用户提供字进行验证,当表单提交回PHP脚本。

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

至于保留值:只需将值添加到您的HTML表单值属性。确保在用户提供恶意代码的情况下转义输出。

编辑:同意所有说你还必须验证服务器端输入的人。客户端验证可以很容易地修改,对用户来说只不过是一种便利功能,所以他们可以在提交之前修复输入。

2

在客户端上用JavaScript验证验证码是没有意义的。如果您可以使用Javascript进行验证,则诈骗者可以使用验证功能在他们发送给服务器之前测试他们的猜测,以便他们始终能够得到正确的答案。

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

+0

我认为@steve意思做服务器和客户端验证的价值。 – 2016-06-13 15:21:24

0

只需选中“G-验证码响应”

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