表单字段长度校验的问题
<%@ page contentType= "text/html; charset=gb2312 " language= "java " import= "java.sql.* " errorPage= " " %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " "http://www.w3.org/TR/html4/loose.dtd ">
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> 注册判断 </title>
</head>
<body>
<%
public boolean LengthCheck(String str,int MinLength,int MaxLength)
{
return((str.length> =MinLength)&&(str.length <=MaxLength));
}
String UserName=request.getParameter( "UserName ");
String NickName=request.getParameter( "NickName ");
String Sex=request.getParameter( "Sex ");
String Password=request.getParameter( "Password ");
String PwdConfirm=request.getParameter( "PwdConfirm ");
String Question=request.getParameter( "Question ");
String Answer=request.getParameter( "Answer ");
String Email=request.getParameter( "Email ");
String Error=new String();
%>
<%
boolean allOk=true;
String Number= "0123456789 ";
for(int i=0;i <UserName.length();i++)
{
char temp=UserName.charAt(i);
if(!((temp> = 'a '&&temp <= 'z ')||(temp> = 'A '&&temp <= 'Z ')||(temp== '_ ')||(temp.indexOf(temp)!=-1)))
Error+= "用户名必须由数字、字母和下划线构成 <br> ";
allOk=false;
}
if(!LengthCheck(UserName,4,20))
{
Error+= "请检查用户名长度 <br> ";
allOk=false;
}
if(NickName.length()==0)
{
Error+= "请填写昵称 <br> ";
NickName= " ";
allOk=false;
}
if(Sex.equals( "男 "))
sex= "0 ";
else if(Sex.equals( "女 "))
sex= "1 ";
else
sex= "2 ";
if(Password.length()==0)
{
Error+= "请设置密码 <br> ";
Password= " ";
allOk=false;
}
if(!LengthCheck(Password,6,12))
{
Error+= "密码长度应该在6-12位间 <br> ";
allOk=false;
}
if((!LengthCheck(PwdConfirm,6,12))|(!Password.equals(PwdConfirm)))
{
Error+= "请重新确认密码 <br> ";
PwdConfirm= " ";
allOk=false;
}
if(Question.length()==0)
{
Error+= "请选择密码提示问题 <br> ";
Question= " ";
allOk=false;
}
if(Answer.length()==0)
{
Error+= "请填写密码问题答案 <br> ";
Answer= " ";
allOk=false;
}
if(Email.indexOf( '@ ') <=0)
{
Error+= "邮件地址填写不正确,请重新填写 <br> ";
Email= " ";
allOk=false;
}
if(allOk)
{
UserName=(String)session.getAttribute( "UserName ");
NickName=(String)session.getAttribute( "NickName ");
Sex=(String)session.getAttribute( "Sex ");
Password=(String)session.getAttribute( "Password ");
PwdConfirm=(String)session.getAttribute( "PwdConfirm ");
Question=(String)session.getAttribute( "Question ");
Answer=(String)session.getAttribute( "Answer ");
Email=(String)session.getAttribute( "Email ");
%>
<jsp:forward page= "reg22.jsp "/>
<%
}
else
{ Error=(String)session.getAttribute( "Error ");
%>
<jsp:forward page= "reg_error.jsp "/>
<%
}
%>
</body>
</html>
在Myeclipes下提示
public boolean LengthCheck(String str,int MinLength,int MaxLength)
这行错误 提示,改为;
if(!((temp> = 'a '&&temp <= 'z ')||(temp> = 'A '&&temp <= 'Z ')||(temp== '_ ')||(temp.indexOf(temp)!=-1)))
indexOf(temp) 提示无法调用indexOf(char)
方法
请高手解决
高分100
[解决办法]
看的让人想自杀,你如果非要在JSP里定义函数,得放在 <%! ..... %> 里面,而用到JSP内置对象的代码如request.getParameter的要放在 <%....%> 里面,否则编译都通不过。剩下的你应该能解决了。不过最要命的是,你做的这些判断都完全可以在客户端用简单的javascript完成,根本没必要提交到服务端。
[解决办法]
同意楼上的说法.完全可以用javascript来做check.
[解决办法]
if(!((temp> = 'a '&&temp <= 'z ')||(temp> = 'A '&&temp <= 'Z ')||(temp== '_ ')||(temp.indexOf(temp)!=-1)))
里面的||(temp.indexOf(temp)!=-1) 干什么的? 去掉!
楼主是不是想这样?
String chars= "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
...
char temp=UserName.charAt(i);
if(-1==chars.indexOf(temp)) Error+= "用户名必须由数字、字母和下划线构成 <br/> ";
[解决办法]
还少了个_
[解决办法]
可户端验证可以被绕过的,服务器验证也是必要的
[解决办法]
晕你这些判断可以用JS来做啊
给你个例子
<script>
function checkareaselect(){
var pw=form.Password.value;
if(pw== " ")
alert( "请输入密码 ")
}
</script>
[解决办法]
这份代码是某本书上给的源代码
我是新人正在学习
但是这本书错误太多了.....
以上这个 已经实现了客户端的验证,但是我还是调不好这一页的服务器端验证
还请高手......快帮找原因
把有问题的那个)||(temp.indexOf(temp)!=-1)去了
还是报500内部服务器错误
[解决办法]
可户端验证可以被绕过的,服务器验证也是必要的
===============================================
客户端的验证是少不了的,这几个完全应该在客户端验证啊!
[解决办法]
if(Sex.equals( "男 "))
sex= "0 ";
else if(Sex.equals( "女 "))
sex= "1 ";
else
sex= "2 ";
sex变量在哪里定义的?
if(allOk)
{
UserName=(String)session.getAttribute( "UserName ");
NickName=(String)session.getAttribute( "NickName ");
Sex=(String)session.getAttribute( "Sex ");
Password=(String)session.getAttribute( "Password ");
PwdConfirm=(String)session.getAttribute( "PwdConfirm ");
Question=(String)session.getAttribute( "Question ");
Answer=(String)session.getAttribute( "Answer ");
Email=(String)session.getAttribute( "Email ");
%>
<jsp:forward page= "reg22.jsp "/>
<%
}
这一段是什么意思?怎么又从session中取参数?