Avatar billede ingeman Seniormester
25. oktober 2003 - 17:14 Der er 25 kommentarer og
1 løsning

Replace ' i formfelter

for each item in request.form
request.form(item) = replace(request.form(item),"'","")
next

I VBS får jeg følgende fejl:

Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method: 'Request.form'
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 17:30 #1
Du kan ikke putte værdier i request.form - find på nogle andre variabler
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 17:33 #2
fx:

<html>
<head>
<title> ... </title>
<meta name="Generator" content="Human intelligence">
</head>

<body>
<%
set form=server.createobject("Scripting.Dictionary")
for each item in request.form
  form.add item,replace(request.form(item),"'","")
next

response.write form("t") & "<br>"
%>

<form method="post">
<input type="text" name="t">
<input type="submit" name="z">
</form>
</body>
</html>
Avatar billede ingeman Seniormester
25. oktober 2003 - 17:46 #3
Javel - er man så nødt til at oprette et helt nyt variabelsæt ?
Avatar billede ingeman Seniormester
26. oktober 2003 - 15:36 #4
lukket
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 15:37 #5
Hvad blev løsningen?
Avatar billede ingeman Seniormester
26. oktober 2003 - 15:55 #6
Åbn svar
Avatar billede ingeman Seniormester
26. oktober 2003 - 15:57 #7
Den her:

function fjerntegn(f) {
        frm_el = f.elements;
        for(i=0;i<frm_el.length;i++){
        alert('xxxxxxxxxxxxxMangler mindst een at sende til');
            frm_el[i] = frm_el[i].value.replace(/\47/g, "");
        }
    }
   
      function testdata(brevform){
        fjerntegn(brevform);
        if (document.forms[0].selected.length==0) {
          alert('Mangler mindst een at sende til');
          return false;
        }
        makelist();
        return true
      } 

Men den har fejl - skulle fjerne tegnet ' fra formen men det sker ikke ?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 15:59 #8
frm_el[i].value = frm_el[i].value.replace(/\47/g, "");
Avatar billede ingeman Seniormester
26. oktober 2003 - 16:10 #9
function fjerntegn(f) {
        frm_el = f.elements;
        for(i=0;i<frm_el.length;i++){
            frm_el[i].value = frm_el[i].value.replace(/\47/g, "");
        }
    }

Så virker det !
Avatar billede ingeman Seniormester
26. oktober 2003 - 16:18 #10
Er der andre tegn ' - som giver problemer ?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 16:23 #11
Det er det man plejer at nøjes med.

Men enhver hacker med respekt for sig selv kan slå dit javascript fra,
og dermed kunne modificere dine SQL-forespørgsler. Led efter
"SQÆ Injection" på nettet.

Det er kun sikkert nok, hvis det sker på serveren.
Avatar billede ingeman Seniormester
26. oktober 2003 - 16:28 #12
Jeg har ikke kunnet finde asp kode til at udføre den samme kontrol ?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 16:31 #13
Det har du da - det eneste problem du havde var at resultatet ikke
kunne lægges tilbage i samme "variabel" - request.form
Avatar billede ingeman Seniormester
26. oktober 2003 - 16:41 #14
Som jeg har forstået dig må jeg oprette et sæt hel nye variabler
isåfald taler vi om ca 300 i mit tilfælde.
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 16:43 #15
Eller bruge "tricket" med dictionary-objektet jeg viste dig
Avatar billede ingeman Seniormester
26. oktober 2003 - 16:51 #16
Det trick du taler - erstater den alle variabler til samme navn ?
dictionary-objektet er det en del af IIS 5.0 eller skal den installeres ?
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 16:55 #17
Det er der altid.

Du kan lege lidt med mit eksempel.
Avatar billede ingeman Seniormester
26. oktober 2003 - 17:13 #18
dim form,item
set form=server.createobject("Scripting.Dictionary")
for each item in request.form
  form.add item,replace(request.form(item),"'","")
next
set form=nothing

jeg får den her fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in string in query expression '''' WHERE ID=65'.
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 17:16 #19
Det har ikke noget med de linier at gøre. Du husker at du så efterfølgende
ikke skal bruge  request.form("bimbam"), men form("bimbam")
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 17:16 #20
Ooops, og ikke sætte form=nothing før du e heeelt færdig med scriptet
Avatar billede ingeman Seniormester
26. oktober 2003 - 17:21 #21
loConn.Execute "UPDATE Tilbud SET  ToRe='" & Form("tore")  & "'," &_
                                                                "Regards='" & Request("Regards")  & "'," &_
                                                              "SlutTekst='" & Request("SlutTekst")  & "'," &_
                                                                    "Totext='" & Request("totext")  & "'  WHERE ID=" & Request("IDTilbud")

Jeg får den her fejl:
Microsoft VBScript runtime error '800a000d'

Type mismatch
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 17:23 #22
Request("Regards") skal også være Form("Regards")
Avatar billede ingeman Seniormester
26. oktober 2003 - 17:50 #23
loConn.Execute "UPDATE Tilbud SET  ToRe='" & Form("tore")  & "'," &_
                                                                "Regards='" & Form("Regards")  & "'," &_
                                                              "SlutTekst='" & Form("SlutTekst")  & "'," &_
                                                                    "Totext='" & Form("totext")  & "'  WHERE ID=" & Form("IDTilbud")

Jeg får stdig den her fejl:
Microsoft VBScript runtime error '800a000d'

Type mismatch
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 17:56 #24
Har du stadig set form=nothing
Avatar billede ingeman Seniormester
26. oktober 2003 - 18:36 #25
Nu virker det - set form=nothing havde forkert placering - åbn svar.
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 18:39 #26
Du kan ikke point mere i dette spørgsmål. Det er også ligemeget ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester