Asp classic 使用Mid函数提交长查询字符串-获取错误,字符串被截断

Asp classic 使用Mid函数提交长查询字符串-获取错误,字符串被截断,asp-classic,Asp Classic,我有一个页面,用户可以在其中选择许多复选框,然后将他们选择的每个值插入到数据库中。我正在使用querystring将初始页面中的值提交到post页面 这些值是以管道分隔的,并且存储过程会为每个值运行。我还向数据库提交了一个整数 有两个问题-首先,有时我会遇到一个中间的“无效过程调用”错误。还有一些时候,我似乎为QueryString提交了太多的字符,所以它会被截断,并不是所有的值都被提交 感谢您的帮助。谢谢 提交值的主页面-Javascript: function submit() {

我有一个页面,用户可以在其中选择许多复选框,然后将他们选择的每个值插入到数据库中。我正在使用querystring将初始页面中的值提交到post页面

这些值是以管道分隔的,并且存储过程会为每个值运行。我还向数据库提交了一个整数

有两个问题-首先,有时我会遇到一个中间的“无效过程调用”错误。还有一些时候,我似乎为QueryString提交了太多的字符,所以它会被截断,并不是所有的值都被提交

感谢您的帮助。谢谢

提交值的主页面-Javascript:

function submit()
{
    var n = 0;
    var stringIDs = "";

              //Number of records to submit stored in hidden text box.
    for (n=1; n<=parseInt(document.getElementById("txtResultsIndex").value); n++)
        {
            try
            {
                var cb = document.getElementById("cbSelection"+n);
                if (cb.checked) 
                    {
                        stringIDs = stringIDs + "|" + document.getElementById("linkNumber"+n).innerText;
                    }
            }

            catch(exception)
            {}
        }


window.open("submit.asp?stringIDs=" + stringIDs + "|&cboResearchedBy=" + document.getElementById("cboResearchedBy").value);

}
函数提交()
{
var n=0;
var stringIDs=“”;
//隐藏文本框中存储的要提交的记录数。

for(n=1;nRemove Mid函数。将值放置在文本框中,以数组形式提交到帖子页面,使用for each循环。页面提交仍需要一些时间,但不会产生错误

vIndex=stripquotes(Request.Form(“txtIndex”))

如果是Request.Form(“cboResearchedBy”)”,那么 vResearchedBy=stripquotes(Request.Form(“cboResearchedBy”)) 如果结束

如果是Request.Form(“txtMySeq”)”,那么 txtMySeq=Request.Form(“txtMySeq”) 如果结束

vSeqArray=Split(txtMySeq,“|”)

对于vSeqArray中的每个vSeq

vSQLInsert = "Insert "  
vSQLInsert = vSQLInsert & "@vResearchedBy = '" & vResearchedBy & "',"
vSQLInsert = vSQLInsert & "@vSequenceNumber = '" & vSeq & "'"   

Response.Write(vSQLInsert)

Set RS = CN.Execute (vSQLInsert)

接下来

您的问题太宽泛了。您可以显示错误的复制,这将有助于使您的问题更适合StackOverflow。至于截断-如果您可以访问源代码,请重新编写逻辑以执行常规表单POST,而不是此javascript攻击。Internet Explorer对aro URL的长度有限制und 2000个字符。您的查询字符串(和URL)可能会比这长吗?如果是这样,您将不得不重写为POST而不是GET。
vSQLInsert = "Insert "  
vSQLInsert = vSQLInsert & "@vResearchedBy = '" & vResearchedBy & "',"
vSQLInsert = vSQLInsert & "@vSequenceNumber = '" & vSeq & "'"   

Response.Write(vSQLInsert)

Set RS = CN.Execute (vSQLInsert)