request.form 获取不到我提交的表单信息,是怎么回事啊,

sntdk 2008-03-02 09:12:11

我输入用户名后,再点击下一步,填写好答案后,好像 ""&request.form("Issue")&"" 获取不到我填写的,提问回答信息不知道是怎么回事,

<%
function WebContent()
dim rs,sql,NewPassword,step,sis
step=1
if request.QueryString("Step")="" then
%>
<table width="778" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<form action="userforget.asp?Step=EnterNameMail" method="post" name="form" id="form">
<tr>
<td width="220" align="right"> 登 录 名:</td>
<td width="384"><input name="Userid" type="text" class="TextBox" id="Userid" size="30" maxlength="16" /></td>
</tr>
<tr>
<td height="60" colspan="2" align="center"><input name="Next2" type="submit" class="button" value=" 下一步 " /></td>
</tr>
</form>
</table>
<%
elseif request.QueryString("Step")="EnterNameMail" then

set rs = server.createobject("adodb.recordset")
Response.Write ""&request.form("Userid")&"" &_
"我是中国人"
sql="select * from IT_Users where IT_Userid='"&request.form("Userid")&"'"
rs.open sql,conn,1,1
if rs.eof then
WriteMsg("·登录名不存在或不对应,请返回重新输入。")
exit function
end if
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form action="userforget.asp?Step=EnterAnswer&ID=<%=rs("ID")%>" method="post" name="form" id="form">
<tr>
<td width="220" align="right">登 录 名:</td>
<td width="384"><%=rs("IT_Userid")%></td>
</tr>
<tr>
<td align="right">密码提示问题:</td>
<td><%=rs("IT_Issue")%></td>
</tr>
<tr>
<td align="right">密码提示答案:</td>
<td><input name="Issue" id="Issue" type="text" class="TextBox" size="30" maxlength="100" /></td>
</tr>
<tr>
<td height="60" colspan="2" align="center"><input name="Next" type="submit" class="button" value=" 下一步 " /></td>
</tr>
</form>
</table>
<%
elseif request.QueryString("Step")="EnterAnswer" then
set rs = server.createobject("adodb.recordset")
sql="select * from IT_Users where ID="&request.QueryString("ID")
rs.open sql,conn,1,3
if rs.eof then
WriteMsg("·数据读取异常错误。")
exit function
end if
if rs("IT_Issue")<>""&request.form("Issue")&"" then
WriteMsg("·输入的密码提示答案不正确。")
exit function
end if
randomize timer
NewPassword=Int(899999*Rnd() +100000)
rs("IT_Userpassword")=MD5(NewPassword)
rs.update
rs.close
set rs=nothing
WriteMsg("·您的新密码是<font color='red'>"&NewPassword&"</font>,请记住密码或登录修改成易记、安全的密码。")
exit function
end if
end function
%>
...全文
992 31 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcuandy 2008-03-03
  • 打赏
  • 举报
回复
将 request.form改为 request.
或者
将<form action="userforget.asp?Step=EnterAnswer&ID=<%=rs("ID")%>"
这里改为
<form action="userforget.asp" ... >
然后将 step, id,用 <input name="Step" value="EnterAnswer" type="hidden" />...
sntdk 2008-03-03
  • 打赏
  • 举报
回复
Response.Write("<script>alert('您的新密码是:"&NewPassword&"请用此密码登后修改密码');</script>")
sntdk 2008-03-03
  • 打赏
  • 举报
回复
对了诺要把这一句写成一个,js对话框应该怎样写呀

Response.Write("·您的新密码是<font color='red'>"&NewPassword&"</font>,请记住密码或登录修改成易记、安全的密码。")
sntdk 2008-03-03
  • 打赏
  • 举报
回复
非常感谢 chinmo

源来是md5 没有调用成功
rs("IT_Userpassword")=MD5(NewPassword,32)

这样就可以了,谢谢了咯,
  • 打赏
  • 举报
回复
NewPassword=Int(899999*Rnd() +100000)
Response.Write ""&MD5(NewPassword)&""
response.end()
rs("IT_Userpassword")=MD5(NewPassword)
rs.update
rs.close
set rs=nothing

NewPassword=Int(899999*Rnd() +100000)
rs("IT_Userpassword")=MD5(NewPassword)
Response.Write ""&rs("IT_Userpassword")&""
response.end()
rs.update
rs.close
set rs=nothing


NewPassword=Int(899999*Rnd() +100000)
rs("IT_Userpassword")=MD5(NewPassword)
rs.update
Response.Write ""&MD5(NewPassword)&""
response.end()
rs.close
set rs=nothing

分别这样来测试
以后的程序你都得学会这么调试
sntdk 2008-03-03
  • 打赏
  • 举报
回复
点了这个下一步后程序就不正常了,用 Response.Write 也没找出问题来,程序又不报错,


<form action="userforget.asp?Step=EnterAnswer&ID=<%=rs("ID")%>" method="post" name="form" id="form">
<tr>
<td width="220" align="right">登 录 名:</td>
<td width="384"><%=rs("IT_Userid")%></td>
</tr>
<tr>
<td align="right">密码提示问题:</td>
<td><%=rs("IT_Issue")%></td>
</tr>
<tr>
<td align="right">密码提示答案:</td>
<td><input name="key" id="key" type="text" class="TextBox" size="30" maxlength="100" /></td>
</tr>
<tr>
<td height="60" colspan="2" align="center"><input name="Next" type="submit" class="button" value=" 下一步 " /></td>
</tr>
</form>
</table>
<%
elseif request("Step")="EnterAnswer" then
set rs = server.createobject("adodb.recordset")
sql="select * from IT_Users where id='"&request("id")&"'"
' sql="select * from IT_Users where ID="&request.form("ID")&""
Response.Write ""&rs("id")&""
rs.open sql,conn,1,3
if rs.eof then
WriteMsg("·数据读取异常错误。")
exit function
end if
if rs("IT_key")<>""&request("key")&"" then
WriteMsg("·输入的密码提示答案不正确。")
exit function
end if
randomize timer
NewPassword=Int(899999*Rnd() +100000)
rs("IT_Userpassword")=MD5(NewPassword)
rs.update
rs.close
set rs=nothing
WriteMsg("·您的新密码是<font color='red'>"&NewPassword&"</font>,请记住密码或登录修改成易记、安全的密码。")
exit function
end if
end function
%>

  • 打赏
  • 举报
回复
Response.Write ""&MD5(NewPassword)&""
response.end()
加上这个来检测输出下
看看是更新不了数据库还是传值有问题
sntdk 2008-03-03
  • 打赏
  • 举报
回复
嗯现在我知道了,程序到了 就不正常了,之前,是正常的,


<%
elseif request.QueryString("Step")="EnterAnswer" then
set rs = server.createobject("adodb.recordset")
sql="select * from IT_Users where ID="&request.QueryString("ID")
rs.open sql,conn,1,3
if rs.eof then
WriteMsg("·数据读取异常错误。")
exit function
end if
if rs("IT_key")<>""&request.form("key")&"" then
WriteMsg("·输入的密码提示答案不正确。")
exit function
end if
randomize timer
NewPassword=Int(899999*Rnd() +100000)
rs("IT_Userpassword")=MD5(NewPassword)
rs.update
rs.close
set rs=nothing
WriteMsg("·您的新密码是<font color='red'>"&NewPassword&"</font>,请记住密码或登录修改成易记、安全的密码。")
exit function
end if
end function
%>

sntdk 2008-03-03
  • 打赏
  • 举报
回复

randomize timer
NewPassword=Int(899999*Rnd() +100000)
Response.Write ""&MD5(NewPassword)&""
rs("IT_Userpassword")=MD5(NewPassword)
rs.update
rs.close
set rs=nothing
Response.Write("·您的新密码是<font color='red'>"&NewPassword&"</font>,请记住密码或登录修改成易记、安全的密码。")
exit function
end if
end function


好像程序跑到这里就不对了,好像这里的程序没有制行,似的,也不报错
  • 打赏
  • 举报
回复
你这样检测还不全面
要把response.write("错误")
response.end()
放到每个if then 或者else里去测试
  • 打赏
  • 举报
回复
那你是倒哪里就不能正常了!!
sntdk 2008-03-03
  • 打赏
  • 举报
回复

elseif request("Step")="EnterAnswer" then
response.write("错误<br>")
set rs = server.createobject("adodb.recordset")
sql="select * from IT_Users where ID="&request("uid")

rs.open sql,conn,1,3
if rs.eof then
Response.Write("<a href=""javascript:history.back(-2)"">·数据读取异常错误。</a>")
exit function
end if
response.write("错误2<br>")
sk=RS("IT_key")
Response.Write sk
if rs("IT_key")<>request("key") then
response.write("错误3<br>")
Response.Write("<a href=""javascript:history.back(-2)"">·输入的密码提示答案不正确。</a>")
exit function
end if
response.write("错误4")


程序到这里都是正常的,能跑出所有的错误来,
sntdk 2008-03-03
  • 打赏
  • 举报
回复
可以看到错误,
  • 打赏
  • 举报
回复
我估计你加了这个On Error Resume Next,所以不提示错误
你把这句注释掉或者删掉,就会看到提示错误了
你检查你数据库连接的文件里是否有这句话!检查什么相关的文件里引用了这句话
  • 打赏
  • 举报
回复
elseif request("Step")="EnterAnswer" then

你再这句下面加
response.write("错误")
response.end()

如果能正常显示“错误”2个字,那说明到这里是正常的,如果这里都不正常,那就是你递交前代码设计有问题!然后下面的逐句这么检查
sntdk 2008-03-03
  • 打赏
  • 举报
回复

我现在改成这样也还是不行,获取都是用的request("")

<form action="userforget.asp" method="post" name="form" id="form">
<tr>
<td width="220" align="right">登 录 名:</td>
<td width="384"><%=rs("IT_Userid")%></td>
</tr>
<tr>
<td align="right">密码提示问题:</td>
<td><%=rs("IT_Issue")%></td>
</tr>
<tr>
<td align="right">密码提示答案:</td>
<td><input name="key" id="key" type="text" class="TextBox" size="30" maxlength="100" /></td>
</tr>
<tr>
<td height="60" colspan="2" align="center"><input name="Next" type="submit" class="button" value=" 下一步 " /></td>
</tr>
<input name="uid" value="<%=rs("ID")%>" type="hidden" />
<input name="step" value="EnterAnswer" type="hidden" />
</form>
fornothing 2008-03-03
  • 打赏
  • 举报
回复
既然是form的post,后面就不用跟Step=EnterAnswer&ID=<%=rs("ID")%
可以直接在userforget.asp直接引用request.form("key")

如果要使用userforget.asp?Step=EnterAnswer&ID=<%=rs("ID")%>
使用request.querystring("Step")
sntdk 2008-03-03
  • 打赏
  • 举报
回复
我的代码里面没有加上这个呀,
  • 打赏
  • 举报
回复
我估计你加了这个On Error Resume Next,所以不提示错误
你把这句注释掉或者删掉,就会看到提示错误了
sntdk 2008-03-03
  • 打赏
  • 举报
回复
主要就是这一段程序有问题 可不知道是怎么回事


<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form action="userforget.asp?Step=EnterAnswer&ID=<%=rs("ID")%>" method="post" name="form" id="form">
<tr>
<td width="220" align="right">登 录 名:</td>
<td width="384"><%=rs("IT_Userid")%></td>
</tr>
<tr>
<td align="right">密码提示问题:</td>
<td><%=rs("IT_Issue")%></td>
</tr>
<tr>
<td align="right">密码提示答案:</td>
<td><input name="key" type="text" class="TextBox" id="key" value="" size="30" maxlength="100" /></td>
</tr>
<tr>
<td height="60" colspan="2" align="center"><input name="Next2" type="submit" class="button" value=" 下一步 " /></td>
</tr>
</form>
</table>
<%
elseif request("Step")="EnterAnswer" then
set rs = server.createobject("adodb.recordset")
sql="select * from IT_Users where id='"&request("id")&"'"
' sql="select * from IT_Users where ID="&request.form("ID")&""
rs.open sql,conn,1,3
if rs.eof then
Response.Write("<a href=""javascript:history.back(-1)"">·数据读取异常错误。</a>")
exit function
end if
if rs("IT_key")<>""&request("key")&"" then
Response.Write("<a href=""javascript:history.back(-1)"">·输入的密码提示答案不正确。</a>")
exit function
end if
randomize timer
NewPassword=Int(899999*Rnd() +100000)
rs("IT_Userpassword")=MD5(NewPassword)
rs.update
rs.close
set rs=nothing
Response.Write("·您的新密码是<font color='red'>"&NewPassword&"</font>,请记住密码或登录修改成易记、安全的密码。")
exit function
end if
end function

%>
加载更多回复(11)

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧