【问题标题】:Manually passing form data to classic asp page fails手动将表单数据传递到经典 asp 页面失败
【发布时间】:2012-11-08 19:15:58
【问题描述】:

将表单值从标准 html 表单传递到 asp 页面是可行的,但尝试手动传递它们却不行。这是 ASP 经典的一些奇怪之处吗?为了概述这种情况,我有以下标准形式:

<form name="login" id="login" method="post" action="login_process.asp">
<input name="userName" type="text" size="30" maxlength="100" />
<input name="password" type="password" size="30" maxlength="100" />
<input name="Submit" type="submit" class="btn" value="Login" />
</form>

在接收端(login_process.asp),我有这个:

if Request.Form("Username") <> "" and Request.Form("Password") <> "" then
' do stuff here

现在奇怪的是,这种形式已经存在多年并且确实有效。但是,如果我尝试手动将值传递给 login_process.asp,则这些值永远不会成功:

www.zzz.com/login_process.asp?username=some_user&password=some_password

我在 login_process.asp 中添加了一些检查,以查看是否可以在处理之前从提交中提取变量:

myUsername = request.form("Username")
myPassword = request.form("Password")
response.write "user=" & myUsername
response.write "pass=" & myPassword

我得到的只是

user=pass=

很明显,数据没有通过。但为什么?我在看什么?传递表单数据是基本的东西,那有什么用呢?

感谢任何见解!

【问题讨论】:

    标签: html forms asp-classic parameter-passing


    【解决方案1】:

    如果您在查询字符串中传递它们,您将不再使用该表单,因此 Request.Form 将不起作用。您需要改用 Request.QueryString

    更多信息here

    【讨论】:

    • 谢谢史蒂夫!并诅咒我缺乏 ASP 知识!
    • 没问题,很高兴我能帮上忙 :)
    • 注意 - 使用基于 GET 的请求的优点是它可以更轻松地在多个页面之间动态地来回传递内容。一个缺点是现在您的表单长度是无限的,现在是 URL 栏的长度。而且,您为用户提供的角色越多,漏洞利用就越复杂。显然,还要进行验证,永远不要相信您的用户会做他们应该做的事情,并且永远不要根据您想要的数据类型相信您的变量,始终验证并计算长度,并尽可能使用 REGEX 和 REPLACE .祝你好运!
    【解决方案2】:

    我们可以使用“Request.Form”来获取表单字段数据到其他页面。为此,请尝试以下代码:

    <form name="login" id="login" method="post" action="login_process.asp">
    <input name="userName" type="text" size="30" maxlength="100" />
    <input name="password" type="password" size="30" maxlength="100" />
    <input name="Submit" type="submit" class="btn" value="Login" />
    </form>
    

    我们在 login.process.asp 页面中获取的表单数据是这样的:

    <%  Response.Write(Request.Form("userName"))   %>
    

    它将显示用户名值

    【讨论】:

    • +1 因为这是基于所问问题的实际答案,因为他想从一个表单传递到下一页,而不是按说将它们从一个页面传递到另一个页面.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    相关资源
    最近更新 更多