日期:2014-05-16  浏览次数:20393 次

验证码输入对了还是说错,求解啊!
代码如下:
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录页面</title>
<%
  String ran = (String)session.getAttribute("yzm");
  %>
  <script type="text/javascript">
  function login()
  {
if(document.fuck.username.value=="")
{
alert("用户名不能为空!");
document.fuck.username.focus();
return false;
}
else if(document.fuck.password.value=="")
{
alert("密码不能为空!");
document.fuck.password.focus();
return false;
}
else if(document.fuck.yzm.value=="")
{
alert("验证码不能为空!");
document.fuck.yzm.focus();
return false;
}
else if(document.fuck.yzm.value!=<%=ran%>){ 
  alert("验证码不正确!"); 
  document.fuck.yzm.focus();
  return false; 
  }
else if(true==flag)
{
document.fuck.signup_submit.disabled=true;
}
else
{
return true;
}
 
  }
  function reloadImage(url)  
  {  
  document.yzm1.src = url+'?id='+Math.random();
  }
  </script>
</head>

<body>
<form action="Ex3_6_login_check.jsp" method="post" name="fuck">
<table width="438" height="554" border="1" align="center">
  <tr>
  <th height="361" background="grammer.jpg" scope="col">
  用户名:<input type="text" name="username" size="18" /><br />
  密&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="password" name="password" size="19" /><br />
  验证码:<input type="text" name="yzm" size="4" /><a href="JavaScript:reloadImage('yzm.jsp');"><img src="yzm.jsp" id="yzm1" name="yzm1" /></a><br />
  <input type="submit" value="登录" onclick="return login()" /><input type="reset" value="重置" />
  </th>
  </tr>
</table>
</form>
</body>
</html>


------解决方案--------------------
你右键看一下页面源代码
else if(document.fuck.yzm.value!=<%=ran%>){ //这一句中后面输出的值
与那个验证码图片中的值是不是一样就知道了

你要是每输出一次验证码图片,Session就会自动变化一次的话,那么,你当前页面中的两个值应该是不一样的。如果两个值是一样的,那么改为下面的试试
else if(document.fuck.yzm.value!='<%=ran%>'){