我正在创建一个包含验证码的表单。 验证码是图像,对吧?(如果我错了,请告诉我。) 如何知道用户输入了正确的验证码。 (这意味着如何在javascript中验证验证码,甚至需要检查用户是否输入了正确的情况。)或者可能在servlet中也可以。 这是我在html页面中的代码。
<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>
答案 0 :(得分:0)
但是,你可以做两件事:
您可以将输入的代码发送到服务器,服务器将验证答案并发回“是”或“否”。
的优点:强>
<强>缺点:强>
这是一个更脆弱,但更优雅的方法。通常,您所做的是使用验证码发送散列(例如md5
,但我建议使用更强的算法)。如您所知,无法检索散列数据。因此,在javascript代码中,您需要对用户输入的代码进行哈希处理,并将其与您使用该页面发送的哈希值进行比较。
<强>优点:强>
<强>缺点:强>