代码如下:
//从上一个界面登陆,并在此界面得到userid和password,在这里对userid和password进行验证
<%
//这里是得到参数和链接数据库的代码,不用管
while(rs.next())
{
if(userid.equals(rs.getString("userid"))&&password.equals(rs.getString("password")))
{
out.print("登陆成功");
}
}
//当验证登陆信息失败时怎么写?
//不能在if后面直接跟else语句,要不然不管提交的参数是对是错都会执行的,如果有这方面的源代码也好,参考参考,谢谢
//从上一个界面登陆,并在此界面得到userid和password,在这里对userid和password进行验证
<%
//这里是得到参数和链接数据库的代码,不用管
while(rs.next())
{
if(userid.equals(rs.getString("userid"))&&password.equals(rs.getString("password")))
{
out.print("登陆成功");
}
}
//当验证登陆信息失败时怎么写?
//不能在if后面直接跟else语句,要不然不管提交的参数是对是错都会执行的,如果有这方面的源代码也好,参考参考,谢谢
在else的最后加上return;就行了
return后面的都不会执行
while(rs.next())
{
if(userid.equals(rs.getString("userid"))&&password.equals(rs.getString("password")))
{
out.print("登陆成功");
}
else
{
out.print("登陆失败");
}
}
我试过,这样还是不行,而且问题更大,除了第一次注册的用户可以登陆外,其他的都不能登陆,而且else里边的语句都会执行
你这个代码有问题,while是循环,相当于你把结果集每一条记录都和你取得的userid和password都检查了一遍,只要结果集里有2条以上记录,你的代码执行结果就会出现两种情况
if(rs.next())
{
out.print("登陆成功");
} else {
out.print("登陆失败");
}
ps.setString(1,userid);
ps.setString(2,password);
ResultSet rs = ps.excuteQuery();
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:leavaword");
ps=conn.prepareStatement("select userid,password from member where userid='userid' AND password='password'");
rs=ps.executeQuery();
if(rs.next())
{
out.print("登陆成功");
}
else
{
out.print("登陆失败");
}数据库链接没问题,不管是对的还是错的登陆信息,都是输出"登陆失败",能帮我修改下这段代码吗
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
int i=0;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:leavaword");
ps=conn.prepareStatement("select count(*) from member where userid='userid' AND password='password'");
rs=ps.executeQuery();
while(rs.next())
{
if(userid.equals(rs.getString("userid"))&&password.equals(rs.getString("password")))
{
i=i++
}
} if i >0 {
out.print("登陆成功");
}
else
{
out.print("登陆失败");
}
PreparedStatement ps=null;
ResultSet rs=null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:leavaword");
ps=conn.prepareStatement("select * from member where userid=? AND password=?"); //这里用问号传值
ps.setString(1,userid); //userid和password是你输入的
ps.setString(2,password);
rs=ps.executeQuery();
if(rs.next())
{
out.print("登陆成功");
}
else
{
out.print("登陆失败");
}
这样应该没有问题滴