主题:登陆错误!???这是为什么?
yoyotree
[专家分:0] 发布于 2007-12-18 21:46:00
关于检测用户名及密码是否正确的问题!用户名是否正确可以判断,但密码永远都提示错误???若将第2个if改成:if(password.equals("123"));(密码设为123)则提示登陆成功.
这到底是为什么??
if(rs.next())
{
String myPassword=rs.getString(1); //提取数据库中密码
out.print(myPassword);
if(password.equals(myPassword))
{ out.print("你已经成功通过验证!");
%>
<a href="manage.jsp?">进入管理页面</a>
<%
}
else
{
out.print("密码错误,请重新输入!");
%>
<a href="login1.jsp?">返回</a>
<%
}
}
else
{
out.print("该用户不存在!");
%>
<a href="login1.jsp?">返回</a>
<%
}
%>
回复列表 (共6个回复)
沙发
billc [专家分:50] 发布于 2007-12-19 09:24:00
我原来也遇到过
好象是空格的问题,你 String myPassword=rs.getString(1); 以后.trim()一下
应该就可以解决了。
板凳
yoyotree [专家分:0] 发布于 2007-12-19 13:30:00
对!就是空格的问题!我说打印的时候怎么突然多了个空格呢!先试试哈~~~
3 楼
yoyotree [专家分:0] 发布于 2007-12-19 13:47:00
空格是没了,但还是提示密码错误??!
4 楼
billc [专家分:50] 发布于 2007-12-20 10:11:00
我从新写了个。。。跟你那个查不多。。。。你看看
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<body>
<%
String name=(request.getParameter("name")).trim();
String myPassword=(request.getParameter("password")).trim();
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:ceshi","sa"," ");
sql=con.createStatement();
rs=sql.executeQuery("select * from ceshi where name='"+name+"'");
if(rs.next())
{
String s=rs.getString(2).trim();
if(myPassword.equals(s))
{
out.print("你已经成功通过验证!");
}
else
{
out.print("密码错误,请重新输入!");
}
}
else
{
out.print("该用户不存在!");
}
}catch(Exception e){}
%>
</body>
我感觉就是 String s=rs.getString(2).trim(); 这句的事了
我在我机器上已经测试过了,没有问题你照着我的看看,我也是新手呵呵,写的不好,别见怪啊呵呵
数据库我叫ceshi 表叫ceshi 表里面有name password 二个字段
数据员也叫测试
如果还有问题就继续问,我一直跟着这个帖子。呵呵
5 楼
yoyotree [专家分:0] 发布于 2007-12-20 21:27:00
啊!果然是啊,我只清楚了后面的空格,而前面提取的空格没有清除,怪不得不能匹配呢!真是太感谢了,又学到了一个小知识,呵呵,谢谢啦!奖励30分,呵呵,交个朋友吧
6 楼
billc [专家分:50] 发布于 2007-12-21 11:52:00
呵呵,其实我也是新手,只是这个问题我也遇到过,我QQ是826077862
一起学习呵呵 +的时候写你的论坛名字就行..我记住了
yoyotree是你,呵呵[em2]
我来回复