ASP修改密码代码出错!
以下是我的代码,麻烦高手给检查下哪里出错了?我那用户信息的数据库表名是:hy密码字段是:mm<%dimpaw1,paw2,pawpaw=request.Form("paw...
以下是我的代码,麻烦高手给检查下哪里出错了?我那用户信息的数据库表名是: hy 密码字段是:mm
<%
dim paw1,paw2,paw
paw=request.Form("paw")
paw1=request.Form("paw1")
paw2=request.Form("paw2")
if paw1="" or paw2="" or paw="" then
response.Write("<script>alert('密码不能为空');location.href='xgmm.asp'</script>")
response.End()
end if
if paw1<>paw2 then
response.Write("<script>alert('两次密码不一致');location.href='xgmm.asp'</script>")
response.End()
end if
set conn=Server.Createobject("adodb.connection")
conn.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source=" & Server.MapPath("databases/bk.mdb")
if rs("mm")<>paw then
set rs=Server.Createobject("adodb.recordset")
'打开数据库
sql="select mm from hy where ID='"&ID&"'"
rs.open sql,conn,1,1
response.Write("<script>alert('密码错误');location.href='xgmm.asp'</script>")
response.End()
end if
'update 数据
'定义sql语句
exec="update mm='"&paw1&"' set mm from hy where ID="&ID&""
rs.open exec,conn,1,3
response.Write("<script>alert('修改成功');location.href='xgmm.asp'</script>")
response.End()
%>
运行时直接弹出“密码不能为空”的窗口,不显示网页
以下是修改密码表单代码:
<form method="post" name="form1" id="form1">
<table width="300" height="100" cellpadding="0" cellspacing="0"><tr>
<td width="111" class="STYLE14">请输入您的旧密码:</td>
<td width="187"><input name="paw" type="text" id="paw" /></td></tr>
<tr>
<td class="STYLE14">请输入您的新密码:</td>
<td><input name="paw1" type="text" id="paw1" /></td>
</tr>
<tr>
<td class="STYLE14">请重复输入新密码:</td>
<td><input name="paw2" type="text" id="paw2" /></td>
</tr>
</table>
<br />
<input type="submit" name="Submit" value="确认修改" />
<input name="ID" type="hidden" id="ID" value="<%=(Rehy.Fields.Item("ID").Value)%>" />
</form> 展开
<%
dim paw1,paw2,paw
paw=request.Form("paw")
paw1=request.Form("paw1")
paw2=request.Form("paw2")
if paw1="" or paw2="" or paw="" then
response.Write("<script>alert('密码不能为空');location.href='xgmm.asp'</script>")
response.End()
end if
if paw1<>paw2 then
response.Write("<script>alert('两次密码不一致');location.href='xgmm.asp'</script>")
response.End()
end if
set conn=Server.Createobject("adodb.connection")
conn.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source=" & Server.MapPath("databases/bk.mdb")
if rs("mm")<>paw then
set rs=Server.Createobject("adodb.recordset")
'打开数据库
sql="select mm from hy where ID='"&ID&"'"
rs.open sql,conn,1,1
response.Write("<script>alert('密码错误');location.href='xgmm.asp'</script>")
response.End()
end if
'update 数据
'定义sql语句
exec="update mm='"&paw1&"' set mm from hy where ID="&ID&""
rs.open exec,conn,1,3
response.Write("<script>alert('修改成功');location.href='xgmm.asp'</script>")
response.End()
%>
运行时直接弹出“密码不能为空”的窗口,不显示网页
以下是修改密码表单代码:
<form method="post" name="form1" id="form1">
<table width="300" height="100" cellpadding="0" cellspacing="0"><tr>
<td width="111" class="STYLE14">请输入您的旧密码:</td>
<td width="187"><input name="paw" type="text" id="paw" /></td></tr>
<tr>
<td class="STYLE14">请输入您的新密码:</td>
<td><input name="paw1" type="text" id="paw1" /></td>
</tr>
<tr>
<td class="STYLE14">请重复输入新密码:</td>
<td><input name="paw2" type="text" id="paw2" /></td>
</tr>
</table>
<br />
<input type="submit" name="Submit" value="确认修改" />
<input name="ID" type="hidden" id="ID" value="<%=(Rehy.Fields.Item("ID").Value)%>" />
</form> 展开
展开全部
我正组织语言呢,楼上就给出了答案,呵呵。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你运行时报的什么错?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的错误是:首次请求会弹出”密码不能为空”的对话框,点击后继续是这样的提示,机器不死机你就永远点下去,不可以显示任何页面的.
呵呵,状况是这样吧?
因为你的首次请求与带参请求并没有分开,也就是说你首次请求是并不带任何参数,但程序已经对其中的参数进行了验证,当然,这样会陷入一个无参的一直的请求的循环中.
更改的办法请在form中加入以下属性:
action="?action=login"这个意思是如果是带参请求时一定会带一个action的参数,然后在开始就可以分开是直接的请求还是网页的修改请求了!
开始的程序应该这样写:
if request.querystring("Action") = "login" then
这证明是由能数请求过来的,将你上边所以的处理均放在这里面
end if
如果取出的action参数为空时表明这是初次请求,而非网页的修改请求,所以会显示你的内容的,如果这个参数是login时,表示这是由form传值过来了,要求更改,这时会进行所有的处理过程!
如果你的程序没有其他的语句的话,我也想不通你的隐藏框的值是来源于何处,是会报错了!所以只要你将上边的内容写入到判断中就可以了!呵呵!意思你应该明白了!
呵呵,状况是这样吧?
因为你的首次请求与带参请求并没有分开,也就是说你首次请求是并不带任何参数,但程序已经对其中的参数进行了验证,当然,这样会陷入一个无参的一直的请求的循环中.
更改的办法请在form中加入以下属性:
action="?action=login"这个意思是如果是带参请求时一定会带一个action的参数,然后在开始就可以分开是直接的请求还是网页的修改请求了!
开始的程序应该这样写:
if request.querystring("Action") = "login" then
这证明是由能数请求过来的,将你上边所以的处理均放在这里面
end if
如果取出的action参数为空时表明这是初次请求,而非网页的修改请求,所以会显示你的内容的,如果这个参数是login时,表示这是由form传值过来了,要求更改,这时会进行所有的处理过程!
如果你的程序没有其他的语句的话,我也想不通你的隐藏框的值是来源于何处,是会报错了!所以只要你将上边的内容写入到判断中就可以了!呵呵!意思你应该明白了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询