首页 > 解决方案 > ASP.Classic 从输入获取值到 POST 参数

问题描述

如果这个问题很愚蠢,请原谅。

我需要获取一个输入值并将其传递给一个 POST 参数,如下所示:

SQL = "[proc_Happy]" & Request.Cookies("UserID")& "," & Request.Form("MYINPUTFIELD")

我尝试使用(它有效!)对 MYINPTFIELD 进行硬编码:

  SQL = "[proc_Happy]" & Request.Cookies("UserID")& "," & 54555152

我在 asp 页面中的输入如下所示:

<input type="number" name="MYINPUTFIELD " id="MYINPUTFIELD" value="<%=MYINPUTFIELD%>">    

我尝试过的事情:

使用 JS 获取价值 - 失败。

注意: MYINPTFIELD 是一个 int

标签: vbscriptasp-classic

解决方案


您的输入字段是否在表单中,即它是否在<form...></form>标签之间?如果不是,那就是你的问题。如果是,<form...>标签里面有什么?它说method='get'吗?如果是,那么您的输入将被放入查询字符串中,而不是表单对象中。为了Request.Form(...)工作,你的表格需要说method='post'

如果您需要此代码与两种表单方法一起使用,您可以执行类似的操作

dim MyInputField
MyInputField = Request.Querystring("MyInputField")
If MyInputField = "" Then MyInputField = Request.Form("MyInputField")
'make the "OMGSQLINJECTION!!1!" people just go away already
'(note to such people: he's using a frigging stored procedure.)
If Not Isnumeric(MyInputField) Then 
    MyInputField = 0 
End If
SQL = "[proc_Happy]" & Request.Cookies("UserID")& "," & MyInputField

推荐阅读