如何在javascript中验证验证代码?
我正在创建一个带有验证代码的表单。 验证码是图像,对吗?(如果我错了,请告诉我。) 如何知道用户正在输入正确的验证码。(这意味着如何验证javascript中的验证代码,甚至需要检查用户是否输入了正确的大小写。)或者可以在servlet中也可以。 这里是我在html页面中的代码如何在javascript中验证验证代码?,javascript,html,validation,Javascript,Html,Validation,我正在创建一个带有验证代码的表单。 验证码是图像,对吗?(如果我错了,请告诉我。) 如何知道用户正在输入正确的验证码。(这意味着如何验证javascript中的验证代码,甚至需要检查用户是否输入了正确的大小写。)或者可以在servlet中也可以。 这里是我在html页面中的代码 <html><body> <script type="text/javascript"> function ValidateForm(frm) { if (frm.CaptchaCo
<html><body>
<script type="text/javascript">
function ValidateForm(frm) {
if (frm.CaptchaCode.value == "") {alert('Enter web form code.');frm.CaptchaCode.focus();return false;}
return false;
}
function ReloadCaptchaImage(captchaImageId) {
var obj = document.getElementById(captchaImageId);
var src = obj.src;
var date = new Date();
var pos = src.indexOf('&rad=');
if (pos >= 0) { src = src.substr(0, pos); }
obj.src = src + '&rad=' + date.getTime();
return false; }
</script>
<i>Enter web form code*:</i>
<input id="CaptchaCode" name="CaptchaCode" type="text" style="width:80px; border:1px solid #999999;" maxlength="6" />
<a href="http://www.SnapHost.com"><img id="CaptchaImage" alt="Web Form Code" title="Anti-spam web forms"
style="margin-left:20px; border:1px solid #999999"
src="http://www.SnapHost.com/captcha/WebForm.aspx?id=HQWK4M77B9KH&ImgType=2" /></a>
<br /><a href="#" onclick="return ReloadCaptchaImage('CaptchaImage');">
<span style="font-size:12px;">reload image</span></a>
</body></html>
函数ValidateForm(frm){
if(frm.CaptchaCode.value==”){alert('输入web表单代码');frm.CaptchaCode.focus();返回false;}
返回false;
}
函数重载CAPTCHAIMAGE(captchaImageId){
var obj=document.getElementById(captchaImageId);
var src=obj.src;
变量日期=新日期();
var pos=src.indexOf('&rad=');
如果(pos>=0){src=src.substr(0,pos);}
obj.src=src+'&rad='+date.getTime();
返回false;}
输入web表单代码*:
嗯,你不能。它不能在客户端上可用。否则,robot也可以运行javascript——而您的工作将毫无意义
但是,您可以做两件事:
AJAX请求
您可以将用户输入的代码发送到服务器,服务器将验证答案并返回“是”或“否”。优点:
- 轻松的
- 您可以在每次尝试后重新生成代码
- 需要一点带宽
- 延迟后,可能需要一段时间才能加载AJAX调用
md5
,但我建议使用更强大的算法)。如您所知,哈希数据无法检索回来。因此,在javascript代码中,您需要对用户输入的代码进行散列,并将其与您随页面发送的散列进行比较
优点:
- 用户立即被告知状态
- 没有带宽问题
- 必须在客户端实现哈希函数
- 验证同一代码的尝试次数不限-这意味着破坏验证码与破坏实际的哈希算法一样困难(根本不用担心)