ASP MySQL循环数组

时间:2011-03-28 11:04:03

标签: mysql asp-classic

我有一个页面通过Ajax构建以下表单。

<form action="go.asp" method="get">
    <!--row-->
    <input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
    <input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
    <input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
    <input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
    <!--#row-->
</form>

表单在行之间建立并循环,因此数据将如下所示:

<form action="go.asp" method="get">
    <!--row-->
    <input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
    <input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
    <input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
    <input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
    <!--#row-->
    <!--row-->
    <input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
    <input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
    <input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
    <input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
    <!--#row-->
    <!--row-->
    <input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
    <input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
    <input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
    <input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
    <!--#row-->
    <!--row-->
    <input type='hidden' name='BundleItemID' id='BundleItemID' value='123'/>
    <input type='hidden' name='BundleColorID' id='BundleColorID' value='4'/>
    <input type='hidden' name='BundleSizeID' id='BundleSizeID' value='Large'/>
    <input type='hidden' name='BundleQtyID' id='BundleQtyID' value='4'/>
    <!--#row-->
</form>

我想向go.asp提交一个表单 - 这个页面将遍历行之间的所有内容并将数据提交到mySQL,我的代码到目前为止:

<%
    dim LoopData

        for i=1 to Request.QueryString("BundleItemID").Count

            Set rs = Server.CreateObject("ADODB.Recordset")
            sql = "SELECT * FROM tblProducts"
            rs.Open sql, conn.c
            While Not rs.EOF

        LoopData = LoopData & Request.QueryString("BundleItemID")(i) & ""

        sql= "INSERT INTO tblProducts (BundleItemID,BundleColorID,BundleSizeID,BundleQtyID) VALUES ("&request("BundleItemID")&","&request("BundleColorID")&","&request("BundleSizeID")&","&request("BundleQtyID")&")"

        rs.MoveNext()
        Wend


    next

%>

我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

我已经通过“简单方法”解决了这个问题:

我所做的是创建一个对象数组(以JSON形式)发送到服务器(通过帖子)。

数组看起来像这样:

var arr = [{"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"},
    {"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"},
    {"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"},
    {"ItemID":123,"ColorID":4, "SizeID":"Large", "QtyID"4"}]

之后,转到接收此数据的页面并分析为请求生成的名称,您将找到一个数字序列var名称。

你只需要在for语句中调用正确的名称,如下所示:

for i =0 to 4

Dim strName = "arr[" & i & "]ItemID"
Dim strValue = request(strName)

next

你可以发送一个带有数组长度的变量来帮助你进行攻击