0

値を動的に入力するコードがあります。これを使用して初めて値を追加する場合は問題ありませんが、編集する場合は、古い値はSQLクエリに挿入されず、新しい値が挿入されます。

次に例を示します。 ここに画像の説明を入力してください

コードは次のとおりです。

============関数=================

sub ShowItemfgEdit(query,selItemName,defValue,num,cdisable)
        response.write "<select " & cdisable & " num=""" & num & """ id=""itemCombo"" name=""" & selItemName & """ class=""label"" onchange=""varUsage.ChangeSatuanDt(this)"">"
        if NOT query.BOF then
            query.moveFirst
            WHILE NOT query.EOF
                tulis = ""
                if trim(defValue) = trim(query("ckdbarang")) then
                    tulis = "selected"
                end if
                response.write "<option value=""" & trim(query("ckdbarang")) & """" & tulis & ">" & trim(query("ckdbarang")) & " - " & trim(query("vnamabarang"))
                query.moveNext
            WEND
        end if
        response.write "</select>"
    end sub 

============関数の呼び出し================

<td class="rb" align="left"><% call ShowItemfgEdit(qGetItemfgGrp,"fitem",qGetUsageDt("ckdfg"),countLine,readonlyfg) %></td>

==============値を投稿する======================

<input type="hidden" name="fitem" value="">

================値を取得===================

for i = 1 to request.form("hdnOrderNum")
        if request.form("selOrdItem_" & i) <> "" then
            
            'bla...blaa...blaa...
            
            ckdfg = trim(request.form("fitem_" & i)) '<==here is the problem
            
            
            objCommand.commandText = "INSERT INTO IcTrPakaiDt " &_
                                        "(id, id_h, ckdunitkey, cnopakai, dtglpakai, ckdbarang, ckdgudang, nqty1, nqty2, csatuan1, csatuan2, nqtypakai, csatuanpakai, vketerangan, cJnsPakai, ckdprodkey, ckdfg, ncountstart, ncountstop, ncounttotal) " &_
                                        " VALUES " &_
                                        " (" & idDt & ",'" & idHd & "','" & selLoc & "','" & nopakai & "','" & cDate(request.form("hdnUsageDate")) & "','" & trim(ckdbarang) & "','" & trim(ckdgudang) & "'," & nqty1 & "," & nqty2 & ",'" & trim(csatuan1) & "','" & trim(csatuan2) & "'," & nqtypakai & ",'" & csatuanpakai & "','" & trim(keteranganItem) & "','" & trim(cjnspakai) & "','" & ckdprodkey & "','" &ckdfg& "'," & cnt1 & "," & cnt2 & "," & totalcnt & ")"
            set qInsertPakaiDt = objCommand.Execute
            
        end if
    next

問題:の古い値はckdfgクエリに挿入されませんでしたが、新しい値が挿入されました。このバグを修正する方法は?

4

1 に答える 1

2

fitemではなく名前のフィールドを投稿しようとしていますfitem_x

注:バグ以外にも、コードにはセキュリティ関連を含むいくつかのバグがあります。たとえば、SQL インジェクション攻撃の場合、入力をサニタイズしません。

于 2012-06-07T06:20:19.857 に答える