用户注册登陆测试

时间:2008-05-10 20:49:09   来源:论坛整理  作者:  编辑:chinaitzhe
我的环境是struts2.0 hibernate3 spring2
在一个注册登陆系统中,假如填写正常信息,注册登陆都没问题。但是
在注册时,假如填写一次错误的验证码,然后再填写正常信息,就会一直报验证码错误。
在登陆时,假如填写一次错误的验证码或者错误的用户名密码,然后填写正常信息,也是一直报验证码错,或用户名密码错误。
在action中execute部分的代码如下:
网友回复:登陆的action中execute代码:
Map mapsession = ActionContext.getContext().getSession();
String randcheck = (String) mapsession.get("validateCode");
mapsession.put("validateCode", null);
if (!randcheck.equals(check))
{
this.addFieldError("check", "验证码输入有误,请重新输入");
return INPUT;
}

if (loginService.userpass(username, password))
{
System.out.println("userpass returns true");
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
session.setAttribute("login", "vip");
this.setLogin((String) session.getAttribute("login"));
System.out.println("the values login in session is" (String) session.getAttribute("login"));
return SUCCESS;
} else
{
this.addFieldError("username", "用户名或密码错误");
return INPUT;
}

网友回复:注册action中的execute方法中的代码:
Map session = ActionContext.getContext().getSession();
String randcheck = (String) session.get("validateCode");
session.put("validateCode", null);
if (!randcheck.equals(check))
{
this.addFieldError("check", "验证码输入有误,请重新输入");
return INPUT;
}

// 模拟生成密码
this.setAftermd5(this.username.substring(3, 6) this.sex
this.password.substring(2, 4));

if (regist2Service.insertUser(username, password, email, sex, keyword,
realname, tel, remark, years, months, days,check))
{
return SUCCESS;
} else
return ERROR;
网友回复:而且希奇的是,在填写了一次错误信息以后,再从前台传过来的数据,就不能引起后台的任何操作了。
网友回复:return 之前把所有的缓存清空
网友回复:return 之前把所有的缓存清空
这怎么操作??
是在服务器端清楚??
网友回复:就会一直报验证码错误。

1 你的验证码应该是一次性的
2 第二次登陆一定要重新生成验证码
3 第二次当然也需要输入验证码

OVER
网友回复:每刷新页面请求验证码的时候我都在控制台打印出来,的确生成新的了,页面上也显示新的了
网友回复:填写了一次错误信息以后,再从前台传过来的数据,就不能引起后台的任何操作
这个是怎么搞的??????????
网友回复:说错了 是不能引起action中execute方法的执行,
set方法还是执行了
关键字:用户,注册,登陆,测试,

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面