| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 863 人关注过本帖
标题:[求助]执行完if又执行else,请教各位如何处理
只看楼主 加入收藏
pcjun405
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-2-6
收藏
 问题点数:0 回复次数:5 
[求助]执行完if又执行else,请教各位如何处理

[求助]下面的脚本执行完if又执行else
代码为修改密码的脚本
先判断旧密码是否正确,如果正确就update新密码,否则提示旧密码不正确,
在执行的时候脚本有时正确,有时在旧密码正确时update了新密码,同时又执行了else里的alert("旧密码输入错误,请重新输入!^_^");
不知有没有哪位知道是何原因!




代码如下
<%!
public String code(String s)
{ String str=s;
try{byte b[]=str.getBytes("ISO-8859-1");
str=new String(b);
return str;
}
catch(Exception e) {return str;}
}
%>
<%
String oper_id=code((String)session.getAttribute("oper_id"));
String oper_pwd=code((String)session.getAttribute("oper_pwd"));
String npwd=code(request.getParameter("newpwd1"));
String npwd2=code(request.getParameter("newpwd2"));
String opwd=code(request.getParameter("oldpwd"));
Connection con2;
Statement sql2;
ResultSet rs2;
String sqlstr2="select * from bb_operator where is_valid=1 and oper_id='"+oper_id+"' and password='"+opwd+"' ";
try{Class.forName(DB_DRIVER);
}
catch(ClassNotFoundException e) {}
try {
con2=DriverManager.getConnection(CONNSTRING,DB_USERNAME,DB_PASSWORD);
sql2=con2.createStatement();
rs2=sql2.executeQuery(sqlstr2);
if(rs2.isBeforeFirst())
{
Connection con;
Statement sql;
ResultSet rs;
try{Class.forName(DB_DRIVER);
}
catch(ClassNotFoundException e) {}
try {
con=DriverManager.getConnection(CONNSTRING,DB_USERNAME,DB_PASSWORD);
sql=con.createStatement();
sql.executeUpdate("update bb_operator set password='"+npwd+"' where oper_id="+oper_id);
sql.close();
con.close();
}
catch(SQLException e) {}
%>
<script language="javascript">
alert("您的密码修改成功!请使用新密码登陆!谢谢!^_^");
window.parent.location.href=('index.jsp');
</script>
<%

}
else
{
%>
<script language="javascript">
alert("旧密码输入错误,请重新输入!^_^");
</script>
<%
}
rs2.close();
sql2.close();
con2.close();
}
catch(SQLException e) {}

%>

搜索更多相关主题的帖子: else str 
2007-02-09 12:40
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
是什么意思?你是说你这段代码同时输出了"您的密码修改成功!请使用新密码登陆!谢谢!"和"旧密码输入错误,请重新输入!"?

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-02-09 14:50
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
收藏
得分:0 

把if里rs2.is.isBeforeFirst()改成rs2.next()看看!


2007-02-09 15:01
pcjun405
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-2-6
收藏
得分:0 
TO:3楼 把if里rs2.is.isBeforeFirst()改成rs2.next() 一样的效果
TO:2楼 经反复测试,前几次修改时,提示“您的密码修改成功!请使用新密码登陆!谢谢” 然后跳到登陆页,再试时,在数据库中密码修改成功了,但没有执行<script language="javascript">
alert("您的密码修改成功!请使用新密码登陆!谢谢!^_^");
window.parent.location.href=('index.jsp');
</script>
也没有跳到index.jsp
然后执行了<script language="javascript">
alert("旧密码输入错误,请重新输入!^_^");
</script>
提示“旧密码输入错误”

真郁闷!

2007-02-09 15:20
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
以下是引用pcjun405在2007-2-9 15:20:49的发言:
TO:3楼 把if里rs2.is.isBeforeFirst()改成rs2.next() 一样的效果
TO:2楼 经反复测试,前几次修改时,提示“您的密码修改成功!请使用新密码登陆!谢谢” 然后跳到登陆页,再试时,在数据库中密码修改成功了,但没有执行<script language="javascript">
alert("您的密码修改成功!请使用新密码登陆!谢谢!^_^");
window.parent.location.href=('index.jsp');
</script>
也没有跳到index.jsp
然后执行了<script language="javascript">
alert("旧密码输入错误,请重新输入!^_^");
</script>
提示“旧密码输入错误”

真郁闷!

你确定密码修改成功了?
你说的这种情况理论上是不可能的!既然执行了ELSE那么密码就不能能修改.你可能是在其他代码影响了结果.
你可以在"sql.executeUpdate("update bb_operator set password='"+npwd+"' where oper_id="+oper_id);"这句之前
写out.print("UPDATE");来测试你的代码!


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-02-09 16:37
pcjun405
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-2-6
收藏
得分:0 

谢谢5楼的回复。我在数据库里看确实是改了。经测试,在我单位的其他电脑上没有这种问题,但在我自己的电脑上试两三次就出现此问题,而且在其他一些用户中也出现了改问题。不知是否跟各人的系统有关。

2007-02-09 17:17
快速回复:[求助]执行完if又执行else,请教各位如何处理
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016679 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved