asp中request.form获取值的问题,

dangerhu 2006-07-10 10:55:10
我在一个asp页中有如下一个表单:
<form ACTION="<%=MM_LoginAction%>" autocomplete="off" METHOD="POST" name="form1">
<input name="logid" type="text" id="logid" onkeydown="if(event.keyCode==13)event.keyCode=9" size="18" maxlength="3">

这个表单提交后执行action是去验证用户和密码,成功就登录后向ok.asp

在ok.asp中,如下定义的session:
<% Session("usere") = Request.Form("logid") %>

<p> 你登陆为:<input name="userid" type="text" id="userid" value="<%=session("usere") %>" size="10" readonly="true">

------------------------------------
就这样,应该是可以的,但是总是不能显示这个session,请各位高手,帮我看看,分析分析,到底哪里出了问题。。。十万分感谢。不会编程,以前很少来csdn.不大了解规则,是要给分的吗。我愿意把我全部分都给。
...全文
2251 21 打赏 收藏 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
backhand 2006-07-11
  • 打赏
  • 举报
回复
建议你别用DW自动生成代码,繁不说,还有太多废话(没什么用处的代码). 改起来麻烦
<%=MM_LoginAction%> 输出必须是ok.asp
beenchen 2006-07-11
  • 打赏
  • 举报
回复
我不大明白你的action=<%=MM_LoginAction%> 是提交到哪了?
如果MM_LoginAction是个函数或者变量的话,他的返回值或者值应该是个url,或者某个页面的名称.你这里就是要把这个返回值设置成ok.asp.否则它无法得知你到底要转向的页面是哪!!

如果你先提交到MM_LoginAction再转到ok.asp的话,除非你在MM_LoginAction处理的时候就已经把提交的信息保存在session,cookie,application里面了,不然是无法传递到ok.asp页面的!
dangerhu 2006-07-11
  • 打赏
  • 举报
回复
太好了,在beenchen() 的启发下,我在loginaction代码部分定义session就可以了。真激动,,,多谢多谢各位。
dangerhu 2006-07-11
  • 打赏
  • 举报
回复
哇,太好了,我只在上面这些logaction代码的最前面加一句定义session,就好用了。太激动了。
dangerhu 2006-07-11
  • 打赏
  • 举报
回复
谢谢楼上几位
我也是跟beenchen() 想得一样。我觉得就是在先提交到longinaction再转到ok.asp时,session丢了,,,我也想试着把session弄到loginaction里面,看了看代码,不知道向哪里加,因为我对那个代码实在不熟悉。。。

loginaction的代码如下:能帮我看一下吗,谢谢

<%
' *** Validate request to log in to this site.
MM_LoginAction = Request.ServerVariables("URL")
If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Request.QueryString
MM_valUsername=CStr(Request.Form("logid"))
If MM_valUsername <> "" Then
MM_fldUserAuthorization=""
MM_redirectLoginSuccess="login_ok.asp"
MM_redirectLoginFailed="sorry.asp"
MM_flag="ADODB.Recordset"
set MM_rsUser = Server.CreateObject(MM_flag)
MM_rsUser.ActiveConnection = MM_jyk2_STRING
MM_rsUser.Source = "SELECT logid, password"
If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
MM_rsUser.Source = MM_rsUser.Source & " FROM dbo.xt_user WHERE logid='" & Replace(MM_valUsername,"'","''") &"' AND password='" & Replace(Request.Form("password"),"'","''") & "'"
MM_rsUser.CursorType = 0
MM_rsUser.CursorLocation = 2
MM_rsUser.LockType = 3
MM_rsUser.Open
If Not MM_rsUser.EOF Or Not MM_rsUser.BOF Then
' username and password match - this is a valid user
Session("MM_Username") = MM_valUsername
If (MM_fldUserAuthorization <> "") Then
Session("MM_UserAuthorization") = CStr(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value)
Else
Session("MM_UserAuthorization") = ""
End If
if CStr(Request.QueryString("accessdenied")) <> "" And false Then
MM_redirectLoginSuccess = Request.QueryString("accessdenied")
End If
MM_rsUser.Close
Response.Redirect(MM_redirectLoginSuccess)
End If
MM_rsUser.Close
Response.Redirect(MM_redirectLoginFailed)
End If
%>
FIREGUNS 2006-07-11
  • 打赏
  • 举报
回复
request.form接收的必须是上页的post表单submit过来的。
所以你改成ok.asp,就可以接收到。

你在你验证的页里把那句session赋值写上去,再转到ok.asp不就可以了么?
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
怎么让ok.asp变成接受表单值的页面呢?
那为什么我改了action就可以呢?
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
不是的,转各的是ok.asp,它只是一个根据某个数据库的用户和密码数据提示登录成功的页面,在ok.asp页面里有一个插入记录的操作,将访问者ip地址插入到别一个数据库。

接受表单页面的url?那我放几个hide试试。。。

有头绪了。试试看看。
jspadmin 2006-07-10
  • 打赏
  • 举报
回复
<%=MM_LoginAction%>它输出的必须是接受表单页面的url
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
那为什么我按着改action的方法就可以获得值呢。。。。。改了action也没有初始化呀,什么都没改。
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
怎么弄,请明示,是先赋个空值吗?
shweze 2006-07-10
  • 打赏
  • 举报
回复
当然,你取表单的值一直就是空的,因为你session根本就没有初始化。你当然得不到任何值
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
果然是的,我将ACTION="<%=MM_LoginAction%>" 改成ACTION="ok.asp"的话,在ok.asp的文本框里就显示 出来了我上一页输入的内容。。。。

请问 在ACTION="<%=MM_LoginAction%>" 的条件下,有没有办法创建 一个session保存它呢?

如果不可以,还有别的解决办法吗?

我不大懂asp,是用dw做的。有别的方法能仔细说一下吗。。感谢。
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
改成单引号不行,即便是我用<%=session("usere") %>直接的,不放value里也不显示 ,所以应该是没有获得值,而如果定义一个指定值的session,在value里就可以显示 出来。
youyu529 2006-07-10
  • 打赏
  • 举报
回复
帮顶
jspadmin 2006-07-10
  • 打赏
  • 举报
回复
只要<%=MM_LoginAction%> 能输出正确的url地址,没有问题的
jspadmin 2006-07-10
  • 打赏
  • 举报
回复
response.write session("usere") 肯定有东西输出的

<input name="userid" type="text" id="userid" value='<%=session("usere") %>' size="10" readonly="true">
引号改成单的,不然提前闭合了
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
我想如果form中的action如果直接是ok.asp的话,应该好用,但我的action是一个验证的asp语句。
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
有人有办法吗,谢谢了。
dangerhu 2006-07-10
  • 打赏
  • 举报
回复
啊?这种情况不是很典型的应用session的情况吗。

能给我提供一种方法吗?谢谢。
加载更多回复(1)

28,402

社区成员

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

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